關於解決版本更新造成的快取問題
我是個前端工程師,目前的工作是做一款基於即時通迅的協同辦公軟體。說是軟體,也只是用迅雷框體封裝起來的網站。
在每次的版本更新時,都會出現資原始檔載入混亂。沒錯的,這都是快取的問題,有經驗的都會嘗試著按ctrl+F5進行重新整理;但是這說到底對於使用者來講是一個功能BUG。在前幾天抽菸時想到了一個解決辦法,現在拿出來與大家進行分享。
對於此類偽C/S結構的產品,有一個值是會隨著版本去變化,並且永遠不可能重複的。沒錯的就是版本號,經過與PHP開發人員協商,將版本號定義於config檔案中。每次版本更新,只需將config檔案中的版本號與真實版本號同步就會徹底解決快取問題。
原理其實也很簡單,訪問一個資原始檔,如果之前有過訪問記錄則會使用快取中的記錄而不去再次請求伺服器。這種解決方法網上經過大量實踐的處理方法就是追加隨機引數,我在產品訪問資源連結中的追加的就是一個類似的隨機引數,只不過這個隨機參每一個版本只會變化一次,畢竟快取的好處顯而易見。
附一組firefox網路監控對比效果圖:
1. 在已經訪問過該地址時
2.在更改版本號之後
個人試出來的,如果有缺陷。請勿噴,謝謝。
相關推薦
關於解決版本更新造成的快取問題
我是個前端工程師,目前的工作是做一款基於即時通迅的協同辦公軟體。說是軟體,也只是用迅雷框體封裝起來的網站。 在每次的版本更新時,都會出現資原始檔載入混亂。沒錯的,這都是快取的問題,有經驗的都會嘗試著按ctrl+F5進行重新整理;但是這說到底對於使用者來講是一個功能BUG。在前
前端靜態資源版本更新與快取之——通過gulp 在原html檔案上自動化新增js、css版本號
原理 修改js和css檔案 通過對js,css檔案內容進行hash運算,生成一個檔案的唯一hash字串(如果檔案修改則hash號會發生變化) 替換html中的js,css檔名,生成一個帶版本號的檔名 方案 現在網上的方案都是生成一個新的dist目錄,
利用時間戳解決頻繁更新圖片造成的圖片快取問題
js code: <script> $(document).ready(function(){var timestamp = Date.parse(new Date())var img_src = 'v.jpg?'+timestamp;$("#img_src")
ionic3 實現app版本更新下載並開啟進行安裝(包括android7+無法自動安裝apk問題的解決方法)
記錄一下實現app版本一鍵更新下載的功能。 我的專案的總體的檔案: 使用的外掛列表如下: 需要純實現該功能用到的基本上是除了後三個。 首先,安裝這些外掛,在app.component.ts頁面上加入 import { Component, ViewChild } f
版本更新、清理快取
//都是導的包呼叫的方法: import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import andr
android studio3.1.2版本更新之後 module匯入失敗 解決方法
最近寫專案需要匯入第三方module,發現android studio3.1.2版本更新之後 無法正常匯入module如圖匯入的module右下方沒有正常顯示圖示閒話少說,下面來說說解決方法吧:第一步:在專案的setting.gradle中新增你新匯入的module名稱(不要
centos6在安裝epel源後更新yum快取提示problem making ssl connection的解決辦法
首先禁用epel源,即將epel.repo裡面的enabled=1先改為enabled=0然後執行命令:yum install -y ca-certificates安裝成功後,再重新將enabled=0改成enabled=1最後執行yum makecache即可成功更新yum
android版本更新適配7.0,解決7.0手機無法更新安裝apk
許可權更改隨著Android7.0的到來,隨之,許可權獲取也隨之更改,因為部分7.0手機就會出現無法下載乃至載入完成後無法安全或者安裝失敗的問題,因為,我們適配7.0版本是很重要的,不然部分7.0手機就會出現上述問題。在api23版本開始部分許可權需要動態獲取,共有9組許可權
解決Windows 10版本更新後不能訪問網路共享資料夾的問題一法
在某次更新後發現Windows 10不能訪問Windows Server 2012上原本可用的共享檔案夾了。 用機器名訪問時報80070035錯誤,用IP訪問時報80004005錯誤。 確認NetB
Linux下GLIBCXX和GLIBC版本低造成的編譯錯誤的解決方案
最近在給編譯環境centOS 6.5安裝新版clang (clang 3.4/3.5)的時候,雖然已經裝了gcc 4.9.1, 但編譯的時候(參考clang官方主頁http://clang.llvm.org/get_started.html的步驟,在獨立build目錄下執行
Python—解決pip版本更新無法繼續安裝第三庫問題
在裝第三方庫時,使用pip install 進行安裝時,可能會出現這樣的情況 由於網路原因導致第三庫無法安裝時,誤以為確實是版本的問題 於是就手賤的把python安裝資料夾script裡面的pip手動刪除了,以及lib裡sit-packages裡的pip資料夾也刪了
使用LruCache快取,輕鬆解決圖片過多造成的OOM
本文轉載於我果:Sunzxyong 原文連線:http://blog.csdn.net/u010687392/article/details/46985653 Android中一般情況下采取的快取策略是使用二級快取,即記憶體快取+硬碟快取—>LruCa
Android 版本更新下載自動安裝APK,並解決Android6.0安裝失敗的問題
現在APP都有版本更新的功能,有的是跳轉到瀏覽器進行下載,感覺比較麻煩,使用者體驗也不好,簡便的方法就是直接下載安裝即可。即使用Android自帶的DownManager,通過啟動一個後臺服務進行下載,下載完成之後以廣播的形式通知使用者安裝,方便很多。 比較鬧
Qt版本差異造成的問題與解決方法
ubuntu14.04.2安裝Qt5.6.0的所遇到的問題 (Calculator:15093): Gtk-WARNING **: 無法在模組路徑中找到主題引擎:“murrine”, 其中一個問題忘了怎麼解決的 就是解除安裝ubuntu上原來的Qt3和Qt4 解除安裝命令
Android Things APP版本更新解決方案
<!--Android Things所有許可權--> <uses-permission android:name="com.google.android.things.permission.MANAGE_BLUETOOTH" /> <uses-permission android
httpclient 工具 版本更新 doget 解決 輸出 返回 字串變少 問題
public static String doGet(String url) throws Exception {logger.info("doGet - url:" + url);String respJson = ""; // 響應內容CloseableHttpClien
IC卡解密從零開始學2 版本更新! 解密工具PN532-mfoc-mfcuk-GUI V2.1 By:lookyour
由於 文件夾 7月 thread 2種 金融 系統 dos 同時 程序更新 更新內容最下面2017/5/3 V2.1======================================最簡要介紹下M1卡數據結構目前能看到的有2種M1卡,分別為S50 S70,其實就是
社交開源系統ThinkSNS V4.6.4更新,版本更新提示功能上線
deb 簽到 tle 圖片 繪制 hot 全部 高度 新功能 【摘要】T4最新版本ThinkSNS V4.6.4已於9月12日中午發布,我們一直在堅持維護ThinkSNS V4,所以大家放心使用,本次主要新增版本更新提示功能,同時有十多個修復和優化內容。 第一個新增功能
ios監聽版本更新
else part nsinteger 判斷 ica sed adding nsbundle success // // UpdatedAppManager.h // PengCunPatrol // // Created by YuFly on 2017/11/
vue-cli版本更新(2.9.1)問題記錄
cnblogs ejs log 網上 row 不能 9.1 topic png 重新安裝了nodejs以後,我也重新下載安裝了vue-cli準備寫一個新的練手項目。當我修改好默認端口後,啟動server服務,發現默認瀏覽器不能自動打開頁面;控制臺打印也變成這樣了;‘npm