怎樣獲取最新版的javascript文件,解決被瀏覽器緩存的問題

来源:https://www.cnblogs.com/html5study-1/archive/2019/11/30/11962171.html

轉載自:https://www.cnblogs.com/mafengzi/p/10464910.html 假設有一個js文件(以jquery為例),在伺服器上的URL地址為:../js/jquery.js 。 當某天jquery版本更新了,用最新版的jquery文件覆蓋了原來舊版的jquery文件。 ...


轉載自:https://www.cnblogs.com/mafengzi/p/10464910.html

假設有一個js文件(以jquery為例),在伺服器上的URL地址為:../js/jquery.js 。

當某天jquery版本更新了,用最新版的jquery文件覆蓋了原來舊版的jquery文件。

這時,在打開引用了此js文件的網頁時,有可能引用的還是舊版,這是因為瀏覽器有緩存,它緩存了舊版的jquery文件。

瀏覽器緩存文件是以完整的URL來緩存的,也就是說,當瀏覽器遇到一個與之前完全一致的URL請求時,就有可能使用之前緩存下來的文件,而不是向伺服器去請求文件。當然,緩存是有時效的,超過了一定的時間後,緩存將會消失。

既然是以完整的URL來緩存文件的,那麼我們就可以使用不同的文件名來訪問更新後的文件。

一種解決方法是,將版本號寫在文件名里,比如,可將以上的jquery.js的文件名改為 jquery-3.3.0.js,其中,3.3.0就是jquery的版本號。在前端引用時,就這樣寫:

<script src="../js/jquery-3.3.0.js"></script>

當某天jquery的版本更新為3.3.1了,我們就將文件名修改為jquery-3.3.1。前端引用的代號同時修改為:

<script src="../js/jquery-3.3.1.js"></script>

另一種解決方法是,不修改文件名,而是將版本號放在URL的query參數里,比如這樣寫:

<script src="../js/jquery.js?ver=3.3.0"></script>

其中ver=3.3.0就是版本號。當jquery的版本號更新為3.3.1之後,就改寫為這樣:

<script src="../js/jquery.js?ver=3.3.1"></script>

 


您的分享是我們最大的動力!

更多相關文章
  • 概述&背景 MySQL一直被人詬病沒有實現HashJoin,最新發佈的8.0.18已經帶上了這個功能,令人欣喜。有時候在想,MySQL為什麼一直不支持HashJoin呢?我想可能是因為MySQL多用於簡單的OLTP場景,並且在互聯網應用居多,需求沒那麼緊急。另一方面可能是因為以前完全靠社區,這種演進 ...
  • SQL:Structured Quety Language SQL SERVER是一個以客戶/伺服器(c/s)模式訪問、使用Transact-SQL語言的關係型資料庫管理子系統(RDBMS) DBMS :Database Management System資料庫管理系統 資料庫:程式用來存取數據的 ...
  • Responding to the Launch of Your App Initialize your app’s data structures, prepare your app to run, and respond to any launch-time requests from the ...
  • 一、完成了內容中的右邊的一部分。練習了三點:小盒子在大盒子中的位置,最好用大盒子的內邊距完成佈局,而不是用小盒子的外邊距來進行佈局;複習了ul,li的用法。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>D ...
  • css背景樣式屬性介紹 背景樣式就是自定義 標簽的背景顏色或背景圖像。 背景屬性說明表 屬性名 | 屬性值|描述 | | background color | f00、red、rgb(255,0,0)|設置背景顏色。 background image |url(背景圖片路徑)|設置背景圖像。 bac ...
  • jQuery中的事件 在JavaScript中,常用的基礎事件有滑鼠事件、鍵盤事件、window事件、表單事件、事件綁定和處理函數的語法格式如下 語法q 事件名 = "函數名()"; 或者 DOM對象.事件名 = 函數; 1、載入事件 $(function () {}); //推薦使用 $(docu ...
  • 簡單的小游戲製作,代碼量只有兩三百行。游戲可自行擴展延申。 源碼已發佈至github,喜歡的點個小星星,源碼入口: "game snake" 游戲已發佈,游戲入口: "http://snake.game.yanjd.top" 第一步 製作想法 游戲如何實現是首要想的,這裡我的想法如下: 1. 利用c ...
  • 在我們的日常前端開發中,使用最頻繁的莫過於使用 在瀏覽器的控制臺中列印出我們需要調試的信息,但是大部分人可能跟之前的我一樣,沒有意識到其實 除了 方法以外,還有很多實用的方法,這些方法可以使我們的調試過程更加容易,也表達得更加直觀,更加豐富多彩,下麵我們就來看看有哪些實用的方法吧! 1、consol ...
一周排行
  • 本文將介紹如何在.NET Core3環境下使用MVVM框架Prism的使用事件聚合器實現模塊間的通信 一.事件聚合器 在上一篇 ".NET Core 3 WPF MVVM框架 Prism系列之模塊化" 我們留下了一些問題,就是如何處理同模塊不同窗體之間的通信和不同模塊之間不同窗體的通信,Prism提 ...
  • Microsoft Visual Studio 2010 的項目為件改為Microsoft Visual Studio 2015預設打開 2010 的Solution (.Sln) file 更改為 2015 的Solution (.Sln) file ...
  • 設計一個簡單的登錄視窗,要求輸入用戶名:小金,密碼:123456時候點登錄能正確轉到另一個視窗。 1、建立窗體應用。 2、這裡創建一個login和一個NewForm的窗體。 3、在login的窗體拖拉2個label和2個textbox和1個linklabel的控制項。一個標簽名字為用戶名,一個標簽為密 ...
  • 已有站點:HTTP80 %systemroot%\system32\inetsrv\APPCMD ADD APP /SITE.NAME:"HTTP80" /path:/Redirect /physicalPath:"C:\Windows\System32\drivers\etc" /applicat ...
  • ``` var xmlstr = @" some_appid 1413192605 component_verify_ticket some_verify_ticket "; Stopwatch sw = Stopwatch.StartNew(); for (int i = 0; i ...
  • 本筆記摘抄自:https://www.cnblogs.com/PatrickLiu/p/7640873.html,記錄一下學習過程以備後續查用。 一、引言 很多人說原型設計模式會節省機器記憶體,他們說是拷貝出來的對象是原型的複製,不會使用記憶體。我認為這是不對的,因為拷貝出來的每一個對象都是實際 存在的 ...
  • 實現把String字元串轉化為In後可用參數代碼: public string StringToList(string aa) { string bb1 = "("; if (!string.IsNullOrEmpty(aa.Trim())) { string[] bb = aa.Split(new ...
  • 1.ImportData主方法 把傳入為object數組類型,按照下標取出對應的參數,此處為Table和Username public object[] ImportData(object[] Param) { DataTable dt = (DataTable)Param[0]; string m ...
  • C#實現對Excel操作,根據數據的類型不同或者來源不同會放在不同的頁簽中,C#實現添加頁簽代碼如下:(path為文檔保存的地址,dt為要處理的源數據) public void addSheet(string Path, DataTable dt) { var SlDoc = new SLDocum ...
  • public partial class Form1 : Form { public Form1() { InitializeComponent(); Dog dog = new Dog(); InsertDog(dog); dog.OnAlert(); //Console.WriteLine(); ...
x