由於效率的緣故,瀏覽器通常會快取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 但是會出現如下這種情況 第一次填充的資料 第二次的填充的資料 可以很明顯的看到,...