清空用戶端緩衝[javascript]

來源:互聯網
上載者:User
<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
當他瀏覽新版本的時候,因為使用的是 v1.1的 foo.js 和 v1.0的 common.js ,這樣將導致指令碼出錯。

解決方案探討:
  因為css,js 是通過 <script src=....> 這種方式載入的,所以,很難使用 asp 的那種伺服器端禁止緩衝的辦法。也很難使用ajax的通過設定 http要求標頭的辦法禁止使用緩衝。

看來隨機數是個好辦法。

//方法一:
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)

但是,如果採用隨機數的話, js檔案將永遠得不到緩衝,每次都必須重新從伺服器載入,即使沒有任何更改。
大家如果經常上國外網站的話,可以看到他們通常採用這樣的方式來解決:
<script src="test.js?ver=113"></script>
其中 ver=113 的 113就是版本號碼,一般都是採用 CVS 或其他工具產生的開發版本號碼。

這樣真正做到了應該緩衝的時候緩衝靜態檔案,當版本有更新的時候從擷取最新的版本,並更新緩衝。
對於映像 <img src="test.jps?ver=在CVS的版本號碼"> 來有效利用和更新緩衝.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.