博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工作踩坑记录:JavaScript跳转被缓存
阅读量:5321 次
发布时间:2019-06-14

本文共 841 字,大约阅读时间需要 2 分钟。

起因:业务想要一个固定二维码来每周扫码跳转到不同的页面上去,我用JS写了个跳转,却发现被缓存了,虽然被具体被缓存多久不清楚,但是被缓存了很不爽,不符合业务实时更改这个二维码跳转页面的需求。

经过:既然页面被缓存了,那就在页面顶部meta里写明不要缓存呗,head标签里加入下面代码:

  <meta http-equiv="Pragma" content="no-cache">

  <meta http-equiv="Cache-Control" content="no-cache">
  <meta http-equiv="Expires" content="0">

  结果你懂的,无效!很奇怪,“window.location.href="https://XXXXX";”这段代码只要出现在页面里,这个跳转就会被缓存,如果去除这段的话,像alert和其它页面html都不会被缓存。

 

解决:正当我犯愁的时候,想起以前解决JS缓存的一个方法,就是在引用URL后面加随机数。这给了我个启发,既然浏览器缓存了这个页面的跳转代码,那我就再做一次页面跳转,并加上这个参数,那样载入的这个跳转页面总不会再被缓存了吧。经测试可以用。

 

PS:虽然html的文档上都写着meta里设置可以防止页面缓存,但是这只是个标准,具体怎么实现还是要看浏览器自己的,我使用的是chrome浏览器,估计它对“window.location.href="https://XXXXX";”有做过优化,只要这条语句出现就会缓存页面(本人猜测)。如果对这个问题有更多了解的人,欢迎交流。

 

------------------2015-12-07--------------

发现chrome浏览器,针对https有做过缓存处理,只要使用https打开过一次,在没有清缓存之前就会一直使用原页面,估计是出于效率考虑

 

转载于:https://www.cnblogs.com/xujanus/p/4514995.html

你可能感兴趣的文章
Android中使用Handler造成内存泄露的分析和解决
查看>>
android代码控制seekbar的样式
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
pdnovel 看书 读书 听书
查看>>
Linked List Cycle II
查看>>
个人作业
查看>>
下拉刷新
查看>>
linux的子进程调用exec( )系列函数
查看>>
TFS Instructions
查看>>
MSChart的研究
查看>>
[LeetCode] Intersection of Two Arrays II 两个数组相交之二
查看>>
C# 服务的安装、卸载、启动、停止操作
查看>>
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
XmlDocument
查看>>
delphi 内嵌汇编例子
查看>>
SQL server 2012 安装SQL2012出现报错: 启用 Windows 功能 NetFx3 时出错
查看>>
【福音】开发者可接入微信公众平台设备功能了
查看>>
springCloud学习-消息总线(Spring Cloud Bus)
查看>>