瀏覽器快取js檔案導致修文件後頁面沒有變化
阿新 • • 發佈:2019-02-12
公司交給了一個任務,把中文的網站轉換成英文的網站,由於是分開獨立執行的,所以不考慮兩者切換問題
一開始做沒什麼問題,首先找到對應的頁面,然後找到對應的文字,然後轉換成英文的內容就可以了
頁面上的中文內容可以分為四種,
一、圖片內容;二、HTML直接寫死的內容;三、js新增的內容;四:資料庫查詢的內容
轉換HTML的內容和資料庫的內容,都沒有出現問題,後來轉換js的內容時候,發現怎麼都不能轉換。我在後臺查了好久,甚至把中文的js語言檔案都給刪掉了,依然不好使。我甚至都懷疑是不是找的地方不對。Tomcat重新部署了好幾遍,甚至於刪掉再重新部署依然沒有解決。
還是從頁面入手,檢視network 的請求內容,發現中語言檔案依然在我的網路請求列表中,我所修改的內容在頁面上也沒有發生變化。忽然間想到了應該是快取的問題,既然Tomcat都重新部署了,那應該不是服務端的快取內容。
最後只能是瀏覽器的快取內容了,清理了一下瀏覽器快取後,果然問題解決。
最後做個總結,瀏覽器會預設的快取一些檔案,如css、js、圖片資源等,就是為了更快的響應頁面。當然這是一種優化。快取機制是根據資源的URL來判斷的,如果URL對應在本地的快取資源有的話,就載入本地的資源,沒有再去請求。
如果不想讓瀏覽器快取這些資源的話,可以在引入的時候,新增隨機數引數,使請求的URL發生變化
如:
<script>
document.write("<script type='text/javascript' src='jquery.js?"+Math.random()+"'></script>");
</script>
也可以使用meta標籤控制不快取
<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">