我們在進(jìn)行網(wǎng)站開發(fā)的過程中經(jīng)常需要測試相關(guān)文件和數(shù)據(jù),但是瀏覽器經(jīng)常會緩存我們的CSS文件和JS文件,這就造成了我們的一些更改無法及時顯示,造成調(diào)試?yán)щy,因此很有必要禁用瀏覽器的緩存。
比如我們有一個html 文件, test.html 在 1.0版本中。可能是這樣
<script src="common.js"></script>
修改后 v1.1版本:
<script src="common.js"></script>
<script src="foo.js"></script>
新增加了一個foo.js 同時,也改動了common.js , 在common.js 中定義了新的類,并在foo.js 中使用了common.js.
在這種情況下如果以前用戶瀏覽過 1.0版本的 html 文件,那么他的瀏覽器自動緩存了 common.js
當(dāng)他瀏覽新版本的時候,因為使用的是 v1.1的 foo.js 和 v1.0的 common.js ,這樣將導(dǎo)致腳本出錯。
還有用戶經(jīng)常喜歡開啟DNS云加速等加速節(jié)點(diǎn),也是會造成修改不能及時響應(yīng)的問題,這里361源碼就不做重點(diǎn)介紹,今天我們給大家著重介紹的是防止瀏覽器緩存css js等靜態(tài)文件的方法。
在html頭部增加如下代碼
<meta http-equiv="expires" content="0"> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache">
但是有的必加偏門的瀏覽器,或者一些手機(jī)的瀏覽器壓根就不響應(yīng)這些HEAD控制代碼,因此這種方法也可能失效。
我們來嘗試
因為css,js 是通過 <script src=....> 這種方式加載的,所以隨機(jī)數(shù)是個好辦法。
// 方法一:document.write( " <script src='test.js?rnd= " + Math.random() + " '></s " + " cript> " )
// 方法二:
var js = document.createElement( " script " )js.src = " test.js " + Math.random()document.body.appendChild(js)
但是,如果采用隨機(jī)數(shù)的話, js文件將永遠(yuǎn)得不到緩存,每次都必須重新從服務(wù)器加載,即使沒有任何更改。
大家如果經(jīng)常上國外網(wǎng)站的話,可以看到他們通常采用這樣的方式來解決:
<script src="test.js?ver=113"></script>
其中 ver=113 的 113就是版本號,一般都是采用 CVS 或其他工具生成的開發(fā)版本號。
這樣真正做到了應(yīng)該緩存的時候緩存靜態(tài)文件,當(dāng)版本有更新的時候從獲取最新的版本,并更新緩存。
對于圖像 <img src="test.jps?ver=在CVS的版本號"> 來有效利用和更新緩存.
這樣的方法你學(xué)會了嗎?
以上就是防止瀏覽器緩存css js等靜態(tài)文件的方法【薦】的全部內(nèi)容,希望對大家的學(xué)習(xí)和解決疑問有所幫助,也希望大家多多支持武林網(wǎng)。新聞熱點(diǎn)
疑難解答
圖片精選