2013-11-23 50 views
0

我們有一個內部的.NET web應用程序,它的嵌入式javascript文件很少。 每當我們發佈新版本的應用程序時,我們都會遇到用戶的瀏覽器使用舊版本js文件的問題,我們必須要求他們在瀏覽器上按Ctrl + F5以獲取最新版本。在新版本中刷新js文件

不幸的是,這很煩人。我們想在js調用這樣嵌入一個隨機數,因此瀏覽器看到改變的網址,並自動獲取新的JS -

有沒有人取得了自動化,這樣的事情,而不必去和做這爲每個更改的js手動? PS:不希望每次刷新時都添加<%DateTime.Now.Ticks%>或類似的策略,只是希望自動爲每個版本添加版本。

+0

看看這裏:http://stackoverflow.com/questions/7538104/are-the-js-files-being-cached 你可以在這裏閱讀更多關於優化緩存:https://developers.google.com/速度/文檔/最佳做法/緩存?csw = 1 –

+0

感謝亞歷克斯指向我的資源。如果在每次發佈之後有一種自動化附加隨機字符串的方法,我想知道更多。 –

+0

@ BM0:不要自動執行此操作,請將其明確。看看我的答案。 –

回答

0

這裏我只是想以實現這一目標的一種方法:

<script type="text/javascript" src="somejsfile.js?<%MyHelperClass.GetVersion()%> 

其中GetVersion()從local.config返回最新版本。

在local.config,有這樣的關鍵:

<add key="Version" value="1.2"/> 

一個缺點這種方法的是,你需要記住每一個版本來改變版本local.config。或者更好的是,你的構建腳本每次都會詢問你的版本,然後將它嵌入到local.config中。

1

有很多方法來強制刷新,但實際中通常使用版本

在這種方法中,您的JavaScript文件名具有版本號後綴。只要文件發生變化,版本會發生變化,並且所有引用都會更改。

例如

ourapp.core.1.1.js 

然後

ourapp.core.1.2.js 

這也有助於重複使用不同的應用程序之間的相同的JavaScript文件。

+0

感謝您的回覆Wiktor。這是否意味着您必須每次創建一個新的.js文件並繼續版本控制歷史記錄或丟失它? –

+0

創建新的或重命名舊的,沒關係。重要的是你使版本控制清晰。 –