jsp頁面中靜態文件的時間戳

在開發、調試js時,常常碰到firefox、chrome的緩存問題,有時候清空緩存還不生效,有時候還重啓tomcat什麼的,也麻煩。javascript

後來想到用時間戳來區別版本,可是,又不是每次全部的代碼都要更新,每次訪問都用系統的時間戳很差用,緩存就成擺設了。html

再後來,想到能夠根據每一個js文件的修改時間來設置,其實對動態腳本一竅不通,由於頁面的風格就是html+ajax,冠以jsp的後綴而已。最後用土辦法解決了,代碼大概就是下面的內容了,getTime.jsp。java

<%!
public long[] getTime(String basePath, String... files) {
	int size = files.length;
	long[] t = new long[size];
	for(int i = 0; i < size; i++) {
		t[i] = (new File(basePath + files[i])).lastModified();
	}
	return t;
}
%>

傳入路徑、須要獲取時間戳的文件名,而後返回long類型的最後修改時間。頁面代碼大概以下:jquery

<%@page contentType="text/html;charset=UTF-8" language="java" import="java.io.File" errorPage=""%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%@include file="getTime.jsp"%>
<%
String web_path=request.getContextPath();
String realPath = application.getRealPath("/");
long t[] = getTime(realPath, "/js/common.js", "/view/frame/js/main.js");
%>
<head>
	<!-- 省略 -->
</head>
<body>
	<!-- 省略 -->
	<script type="text/javascript" src="<%=web_path%>/js/jquery-1.8.3.min.js"></script>
	<script type="text/javascript" src="<%=web_path%>/js/common.js?v=<%=t[0]%>"></script>
	<script type="text/javascript">var web_path = '<%=web_path%>' || getContextPath();</script>
	<script type="text/javascript" src="<%=web_path%>/view/frame/js/main.js?v=<%=t[1]%>"></script>
</body>
</html>

最後在頁面上能夠看到時間戳了。web

不懂別人怎麼作的。大笑暫時簡單解決了問題,就是沒放到項目中使用,純屬測試代碼。ajax

相關文章
相關標籤/搜索