这篇文章给大家分享的是有关JS如何实现返回上一页并刷新页面的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
成都创新互联公司:于2013年开始为各行业开拓出企业自己的“网站建设”服务,为成百上千公司企业提供了专业的网站建设、成都网站设计、网页设计和网站推广服务, 按需求定制制作由设计师亲自精心设计,设计的效果完全按照客户的要求,并适当的提出合理的建议,拥有的视觉效果,策划师分析客户的同行竞争对手,根据客户的实际情况给出合理的网站构架,制作客户同行业具有领先地位的。具体如下:
正常情况下我们通过 history.back()
或者 history.go(-1)
返回上一级页面的时候,是不会刷新页面的。这种不刷新页面包含两种情况:
在 android 或者 pc 浏览器中看到的页面有刷新的效果,其实不是这样的,这个时候的所有的资源都是从缓存中加载来的。我们通过浏览器调试工具可以看到 from disk cache 或者 from memory cache。
在 ios 中甚至于返回到了上一页后,连上一页的脚本文件都没有执行; (其实不是没有执行,是执行了onpageshow)
上网搜索 ios 返回上一页并刷新页面的时候,会看到的解决方案有监听 onpageshow 事件, 通过查看文档可以知道 onpageshow 事件中,可以通过使用 PageTransitionEvent 对象的 persisted 属性来判断,页面是直接从服务器上载入还是从缓存中读取; 如果页面从浏览器的缓存中读取该属性返回 ture,否则返回 false。
在 ios 中如果要实现,返回上一页并刷新页面的话,可以在上一页的脚本文件中加入如下代码:
window.addEventListener('pageshow', function(event) { if(event.persisted) { // ios 有效, android 和 pc 每次都是 false sessionStorage.removeItem('refresh'); location.reload(); } });
但是这种方式在 android 和 pc 的浏览器中没有效果,经过尝试会发现 android 和 pc 的浏览器中每一次进入 pageshow事件后,event.persisted
永远都是返回 false。
不管是在任何情况下,都会监听到 pageshow事件。既然能进入这个函数,那就得想办法在这个函数里判断是否需要刷新页面。可以通过缓存的方式 localStorage
或 sessionStorage
或 cookie
。
要在页面中判断是否需要刷新,那就得在从下一级返回过来的时候,往 cache中存入需要刷新。
sessionStorage.setItem('refresh', 'true'); history.go(-1);
然后在上一级也页面获取并判断
if(sessionStorage.getItem('refresh') === 'true') { sessionStorage.removeItem('refresh'); location.reload(); }
综合兼容所有设备的返回上一页并刷新页面的方式为:
window.addEventListener('pageshow', function(event) { if(event.persisted) { // ios 有效, android 和 pc 每次都是 false location.reload(); } else { // ios 除外 if(sessionStorage.getItem('refresh') === 'true') { location.reload(); } } sessionStorage.removeItem('refresh'); });
注意:
1. 在下一级页面返回的时候,要标记需要刷新页面(set)
2. 在判断完成后,一定要删除之前的存储(remove)避免出现无限重载的情况
感谢各位的阅读!关于“JS如何实现返回上一页并刷新页面的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站栏目:JS如何实现返回上一页并刷新页面的方法-创新互联
当前网址:http://lswzjz.com/article/djjehd.html