1. 程式人生 > >js 給url新增時間戳 解決瀏覽器快取

js 給url新增時間戳 解決瀏覽器快取

好多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>

Timestamp


//解決瀏覽器快取
function timestamp(url){
//  var getTimestamp=Math.random();
 var getTimestamp=new Date().getTime();
 if(url.indexOf("?")>-1){
 url=url+"&timestamp="+getTimestamp
 }else{
 url=url+"?timestamp="+getTimestamp
 }
 return url;
 }

相關推薦

js url新增時間 解決瀏覽器快取

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

使用時間解決瀏覽器緩存問題

image 圖片驗證碼 es2017 服務 分享 ajax 需要 技巧 必須 在IE或者其他的很多瀏覽器中,如果你每次請求的地址是相同的,瀏覽器就不會去連接服務器而是去讀取緩存,這樣對於很多應用來時是非常好的,可以降低服務器的壓力或者減少帶寬的使用,但是對於ajax應用,很

前端js和css加上時間,清除快取,做版本控制

1.<script type="text/javascript" src="../resources/js/pcWeb/index.js"> 2.<script type="text/javascript" src="../resources/js/pcWeb/index.js?15470

利用 filter 機制 靜態資源 url 加上時間,來防止js和css檔案的快取,利於開發除錯

直接上程式碼: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

系統優化(一)Maven打包同一個jar有不同的:版本號+時間(解決思路)

trac net 排除 構建 多個 可能 sof alt height 解決:maven倉庫的ear裏面有非常多個同樣的jar(僅僅是包括不同的:版本號+時間戳) 問題描寫敘述: 發現ear裏面有非常多個同樣的jar,僅僅是包括不同的:版本號+時間

js 計算兩個時間之間相隔天數

時間戳 sta var color pre div 天數 code class var start=1491789600000;//2017-4-10 10:00 var end=1494381600000;//2017-5-10 10:00 var utc=end-

Oracle資料庫新增時間欄位的觸發器

在最近通過webservices介面同步增量資料時。發現在同步之前發現沒有獲取到增加的資料集。檢查程式碼發現發現做了update操作時,時間戳欄位沒有更新。或者insert操作時,沒有預設給時間戳欄位一個系統當前的值。所以在資料庫層面做了一個觸發器。如下SQL語句 CREATE OR REP

vue專案中,如何對static資料夾下的靜態檔案新增時間,以達到清除快取

例如config.js檔案是存放在static資料夾下,裡面存放的是websocket資訊,需要經常改動。改動了以後由於快取資訊,使其不生效,因此需要對引入的檔案新增時間戳。 方法如截圖所示: <script id="main"></script><script type="

js計算兩個時間的時間差,並轉換為:幾天幾時幾分

function sj() {             //功能:計算兩個時間之間相差多少個小時                 var date = '2013-08-30 16:55:49:173';             date = date.substring(0

js中如何把時間轉化為標準時間

由於後臺資料傳遞過來為datetime格式,在前端顯示為時間戳。 我需要再前端將時間戳轉化為標準格式。程式碼如下$("#creationTime").append(getLocalTime(json

jsurl拼接數字時數字變成了字串問題

1、之前是想通過js獲取商品id拼接到url後面,來實現根據獲取到不同的id來跳轉不同的商品詳情頁,然後發現通過直接 url+id的方式,拼接後跳轉瀏覽器不知道什麼原因總是沒法識別到剛剛拼接的id,把id換成字串就可以,一換成數字,瀏覽器上顯示的url應該出現數字的位置總是

js日期轉換成時間

1、使用原生javascript的Date物件,進行格式化   (1)將日期字串轉換為Date型別的物件。 let d = new Date('2018-01-01') (2)轉換為時間戳。 let t = d.getTime(d) // 方法1 let t = d.valueOf(d)

jsdiv新增滑鼠懸停事件

新任務:給表格上的某列新增滑鼠懸浮事件 但是表格是由omGrid生成的,無法修改 所以只能先獲取,再新增事件 先用firebug看清表格結構:\ 是div class="innerCo1 " class還是有空格的,為此還糾結了下.. js程式碼: var obj =

JS 處理13位時間

下面總結一下js中時間戳與日期格式的相互轉換:1. 將時間戳轉換成日期格式:123456789101112function timestampToTime(timestamp) {var date = new Date(timestamp * 1000);//時間戳為10位需

iOS UITableView新增手勢衝突解決方案

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWith

angular js 元素新增樣式和移除樣式

angular js 給id元素新增樣式和移除樣式 <li id="send-tab"><a ng-click="showSendMessageList()" data-tog

url時間避免再次請求當前路徑出現的快取問題

1.先解釋一下,為什麼要加時間戳: URL後面新增隨機數通常用於防止客戶端(瀏覽器)快取頁面。 瀏覽器快取是基於url進行快取的,如果頁面允許快取,則在一定時間內(快取時效時間前)再次訪問相同的U

開發環境 -- 在linux驅動程式碼中新增時間

#include <linux/timer.h> #include <linux/timex.h> #include <linux/rtc.h> /*新增到合適位置

利用時間解決頻繁更新圖片造成的圖片快取問題

js code: <script> $(document).ready(function(){var timestamp = Date.parse(new Date())var img_src = 'v.jpg?'+timestamp;$("#img_src")

url時間方法及作用

末尾 cti var 服務器 第一次 timestamp 嘗試 時間戳 生成 速記:URL 的末尾追加了時間。這就確保了請求不會在它第一次被發送後即緩存,而是會在此方法每次被調用後重新創建和重發;此 URL 會由於時間戳的不同而稍微有些不同。這種技巧常被用於確保到腳本的 P