假設有一個js文件(以jquery爲例),在服務器上的URL地址爲:../js/jquery.js 。前端
當某天jquery版本更新了,用最新版的jquery文件覆蓋了原來舊版的jquery文件。jquery
這時,在打開引用了此js文件的網頁時,有可能引用的仍是舊版,這是由於瀏覽器有緩存,它緩存了舊版的jquery文件。瀏覽器
瀏覽器緩存文件是以完整的URL來緩存的,也就是說,當瀏覽器遇到一個與以前徹底一致的URL請求時,就有可能使用以前緩存下來的文件,而不是向服務器去請求文件。固然,緩存是有時效的,超過了必定的時間後,緩存將會消失。緩存
既然是以完整的URL來緩存文件的,那麼咱們就能夠使用不一樣的文件名來訪問更新後的文件。服務器
一種解決方法是,將版本號寫在文件名裏,好比,可將以上的jquery.js的文件名改成 jquery-3.3.0.js,其中,3.3.0就是jquery的版本號。在前端引用時,就這樣寫:code
<script src="../js/jquery-3.3.0.js"></script>
當某天jquery的版本更新爲3.3.1了,咱們就將文件名修改成jquery-3.3.1。前端引用的代號同時修改成:blog
<script src="../js/jquery-3.3.1.js"></script>
另外一種解決方法是,不修改文件名,而是將版本號放在URL的query參數裏,好比這樣寫:ip
<script src="../js/jquery.js?ver=3.3.0"></script>
其中ver=3.3.0就是版本號。當jquery的版本號更新爲3.3.1以後,就改寫爲這樣:class
<script src="../js/jquery.js?ver=3.3.1"></script>