zoukankan      html  css  js  c++  java
  • 工作踩坑记录:JavaScript跳转被缓存

    起因:业务想要一个固定二维码来每周扫码跳转到不同的页面上去,我用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打开过一次,在没有清缓存之前就会一直使用原页面,估计是出于效率考虑

  • 相关阅读:
    Writing an XMLRPC server or client in ASP.Net: Part 1
    a article test
    基于Android的一个简单多媒体播放器
    一涉及多个知识点的小测试程序
    Android蓝牙测试—发送一文件到另一蓝牙设备
    Android开发入门精品文章导引
    关于List对象的重复项清除和倒序处理
    关于Android的布局
    Android中对文本文件的读写处理
    Android系统中震动功能的测试
  • 原文地址:https://www.cnblogs.com/xujanus/p/4514995.html
Copyright © 2011-2022 走看看