網(wǎng)頁緩存清除方案

因為在基于原生 js + jQ 開發(fā)微信活動頁面時,已經(jīng)上線的項目。更改,緩存實在是影響嚴重。故有了以下總結


方案一

改文件名


方案二

鏈接尾部加上資源版本號,更改過的資源,需要更新版本號

<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);
}

方案三

建立版本號比對校驗,每次發(fā)版,都要更新版本號

  • 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下,微信緩存真的很變態(tài)。怎么刷新都不更新,殺掉微信進程后,再打開微信,才會更新。
方案一和方案二,改變之后,都需要客戶端刷新一次網(wǎng)頁才行。目前來看,方案二 + 方案三 是比較好的。


最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,523評論 25 708
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,252評論 4 61
  • ——讀《聰明的投資者》week2 本周學習的“投資者與通貨膨脹”和“一個世紀的股市歷史”中涉及到很多概念和專業(yè)術語...
    dream2024閱讀 1,141評論 2 5
  • 名譽天下的瑯琊閣,最近出大事了。 眾人皆知瑯琊閣乃天下第一大幫,收錄天下所有謎底,通曉世間萬事,大到求仙問道,小到...
    茶家墳里白閱讀 690評論 0 0
  • 正值五月,天空晴朗。黑夜來臨之前我和于剛要走到最近的鎮(zhèn)上,然而現(xiàn)在我們卻置身于金色的麥田之中,對此,他的評價是...
    MichaelAman閱讀 415評論 0 1