本文共 1232 字,大约阅读时间需要 4 分钟。
情境一:支付金额默认与用户输入不一致问题
页面默认选中100元购买1个礼包,需支付金额为100元。当用户输入其他金额后,上述选项丢失且需支付金额应更新至用户输入值。然而,当用户点击支付后返回时,默认选项恢复,且需支付金额重置为100元,而输入框仍显示用户输入值。这与业务流程不符。
解决方案:通过HTML缓存控制和页面刷新机制
此方法在手机端无效,因部分浏览器忽略缓存控制。
if(window.name != "bencalie"){location.reload();window.name = "bencalie";}else{window.name = "";}
window.onload = function() { var user_input = +$("#user_input_money").val(); if(user_input > 0) { // 处理逻辑:恢复默认选项并更新需支付金额 $(".active").removeClass("active"); $(".need-money").text(user_input); }}
header("Cache-Control:no-store,no-cache,must-revalidate");header("Cache-Control:post-check=0,pre-check=0", false);header("Pragma:no-cache");
情境二:页面跳转前状态保留问题
页面标题列表展开内容默认展开第一个标题。当用户点击非默认标题查看文章详情时,需保留展开的状态。解决方案:利用History API(pushState、replaceState)和popstate事件。
实现方法:
window.history.pushState({html: content, pageTitle: title, id: id}, "", linkUrl);
注意事项:
代码示例:
window.history.replaceState({ html: datahtml, pageTitle: titlehtml, id: id}, "", lurl);
技术小知识:
以上方法可有效解决页面状态保留问题。
转载地址:http://sqhc.baihongyu.com/