js頁面快取的乙個解決辦法

2021-06-19 06:04:35 字數 1443 閱讀 5618

由於效率的緣故,瀏覽器通常會快取js檔案,這就給我們帶了乙個問題:當伺服器端部署的專案中的js檔案進行了修改後,如果再客戶端不手動去重新整理一次頁面,js的修改效果就不會起作用,因為瀏覽器還是用的快取在本地的js檔案。

為了解決這個問題,我們採用了這個方案,每當發布新的版本部署到伺服器上的時候,我們給html頁面中引用的js增加乙個新的字尾,形如版本號的東西。

為了自動完成這一功能,我們使用了ant,寫了乙個ant task來完成該項功能。

/**

* 該任務遍歷web目錄,找出所有的模板檔案,給js和css的引用加上版本號

* * @version 1.0 2008-07-02

* @author huangyuanmu

* @since jdk 1.5.0_8

*/public class addjsandcssversiontovm extends task

/*** 遍歷web目錄中的vm檔案,給js和css的引用加上版本號

* * @author huangyuanmu 2008-07-02

* @param path

*/private void addversiontovm(string path, string version) else

line = line + "\r\n";

contentlist.add(line);

}// 關閉流

br.close();

r.close();

} catch (exception e) finally catch (exception e) }}

// 寫檔案

try

// 更新到檔案

bw.flush();

// 關閉流

bw.close();

w.close();

} catch (exception e) finally catch (exception e) }}

}}

} }/**

* 查詢行中是否有js或css的引用,如果有,則加上版本號

* * @author huangyuanmu 2008-07-03

* @param line

*/private string getmodline(string line, string version) else if (line.startswith("")) else

} public void setpath(string path)

}

當然,這個程式的實現還有一些缺點。首先,模板檔案中對js和css的引用必須規範,符合程式**中描述的格式。另外,不管檔案內容有沒有改變,都加上了新的版本號,這會使用者訪問時不必要的網路流量,可能會對頁面展現的速度產生一些影響。

ant的build指令碼檔案在另外一篇中(

OpenGL乙個經典問題的解決辦法

很常見的錯誤,如下 configuration glsample1 win32 debug compiling resources.compiling.stdafx.cpp d microsoft visual studio vc98 include gl gl.h 1152 error c2144...

ssh連線緩慢的乙個解決辦法

問題描述 嘗試從其他伺服器通過ssh服務遠端到同一區域網的伺服器172.16.54.xx,發現要等待至少10秒時間目標伺服器才有響應。嘗試ping telnet該伺服器,響應速度很快。解決辦法 1 修改sshd config配置檔案 vi etc ssh sshd config 新增下面一行,關閉s...

關於SWT table重新整理的乙個解決辦法

在table中新增資料時,當我們想重新整理 重新填充資料時如果不加操作直接新增的話會出現如下這種情況 第一次填充的資料 第二次填充的資料 在查閱如何解決此問題的過程中,看到一種辦法,是呼叫 table.clearall 但是會出現如下這種情況 第一次填充的資料 第二次的填充的資料 可以很明顯的看到,...