加時間戳記使js,css不緩衝__js

來源:互聯網
上載者:User

好多Linux + Apache的伺服器都會對CSS、JS和圖片這些靜態內容設定緩衝,到了IE這裡又會在本地做一個緩衝。所以當我們更新了CSS檔案之後,常常會出現用戶端沒有更新,導致顯示出現問題。之前我一直使用時間戳參數的方法來解決:

<link rel="stylesheet" type="text/css"   href="common.css?time=20060408" />每次更改了css檔案就把參數time的值設為更改當日的日期,這樣本地IE就會把它當作一個新的檔案更新一次。

但是在最近做的項目中發現一個比較奇怪的問題,伺服器端做了gzip壓縮,到用戶端第一次解壓的時候沒問題,第二次訪問的時候ie從cache裡讀檔案就出問題了,只能讀出前面大約一兩千個位元組。在兩台win2000+ie6的機子上重現了這個問題,XP的還沒有發現。

最終的解決方案是在時間戳記參數後面再加上一個.css結尾,也就是這麼寫:

<link rel="stylesheet" type="text/css"   href="common.css?time=20060408.css" />然後就一切正常了...

大概IE在從緩衝裡讀檔案的時候還得對副檔名做一個判斷,所以這麼加一下它就認了。我自己對這個解釋不甚滿意,所以如果你有標準答案麻煩留個言

當然js也可以用這種方法<script language="JavaScript" src="/flash/duilian.js?time=New Date()"></script>

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.