页面跳转,是否记录在history中
在使用html5开发app的时候,往往会遇到条件查询的情况。在这个情况下,用户反复查询一个输出中的所有参数。最简单的方式恐怕就是修改url链接了,但是其url链接一旦修改,之前查询的记录就会被存储到history中去。这样,用户如果使用返回键,往往不会返回到之前的页面,而是返回到上一次查询的结果,但是这样的结果对用户体验非常不好。
代码实现:
实现该需求,主要需用到Location.replace() 方法,它以给定的URL来替换当前的资源。调用 replace() 方法后,当前页面不会保存到会话历史中(session History),这样,用户点击回退按钮时,将不会再跳转到该页面。
function redirect(url, asLink = true) {
asLink ? window.location.href = url : window.location.replace(url)
}延伸:页面刷新
刷新页面这里主要用到了两个函数,一个是window.history.replaceState,另一个是window.location.reload。
其中window.location.reload函数刷新页面,是不会记录在history中。但是一定会有人问,既然只是刷新页面,为什么会跳转到新页面去呢?
这就涉及到函数window.history.replaceState了,这个函数的功能是在页面不发生跳转的情况下,修改页面的url与title,具体使用方法为:
history.replaceState(null, "页面标题", "xxx.html");本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!