网页缓存清除方案

因为在基于原生 js + jQ 开发微信活动页面时,已经上线的项目。更改,缓存实在是影响严重。故有了以下总结


方案一

改文件名


方案二

链接尾部加上资源版本号,更改过的资源,需要更新版本号

<link rel="stylesheet" type="text/css" href="./css/index.css?v=1.0">
<img class="banner--event-date" src="./imgs/event_date.png?v=1.0" alt="">
<script src="./js/index.js?v=1.0" type="text/javascript" charset="utf-8"></script>
.step-1 {
    background-image: url(../imgs/step_1.png?v=1.0);
}

方案三

建立版本号比对校验,每次发版,都要更新版本号

  • index.js
;(function($) {
  // 必须与 version.json 版本一致
  var version = '1.0';

  // 获取当前目录路径
  var jsLoaded = document.scripts;
  var currentJs = jsLoaded[jsLoaded.length - 1].src;
  var path = currentJs.substring(0, currentJs.lastIndexOf('/') + 1);

  $.ajax({
    url: path + 'version.json?date=' + Date.now(),  // 禁止缓存文件
    method: 'GET',
    success: function(res) {
      // 版本号不一致时,存在缓存。强制刷新
      if (res.version != version) {
        location.reload(true);
      }
    },
    error: function(error) {
      console.warn(error)
    }
  })
})(window.jQuery || window.$ || $);
  • version.json
{
  "version": "1.0"
}

在下实在是被缓存爆出翔了。
另外,在iOS8下,微信缓存真的很变态。怎么刷新都不更新,杀掉微信进程后,再打开微信,才会更新。
方案一和方案二,改变之后,都需要客户端刷新一次网页才行。目前来看,方案二 + 方案三 是比较好的。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,812评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,305评论 4 61
  • ——读《聪明的投资者》week2 本周学习的“投资者与通货膨胀”和“一个世纪的股市历史”中涉及到很多概念和专业术语...
    dream2024阅读 1,158评论 2 5
  • 名誉天下的琅琊阁,最近出大事了。 众人皆知琅琊阁乃天下第一大帮,收录天下所有谜底,通晓世间万事,大到求仙问道,小到...
    茶家坟里白阅读 705评论 0 0
  • 正值五月,天空晴朗。黑夜来临之前我和于刚要走到最近的镇上,然而现在我们却置身于金色的麦田之中,对此,他的评价是...
    MichaelAman阅读 422评论 0 1