頁面緩存規則

頁面部署到服務器後需作到按F5刷新就能保持頁面爲最新文件,無需手動清除緩存.css

整體思路,經過修改url地址來防止頁面緩存.具體規則以下:html

1.引入的css

[推薦]方法一

1.css路徑配置到config.jsjava

"pqgridC":ipconfig.address.spxc+"tools/ParamQuery-grid-v2.2.0/themes/Office/pqgrid.css?v="+cacheVersion ,

2.經過統一資源導入在頁面裏導入cssjquery

var headHref2=".."; 
var headHref="../"; 
//獲取緩存版本號
if(typeof(cacheVersion)=="undefined"){
	$.ajax({
		type : "GET",
		url : headHref+'js/cache-version.js',
		dataType: "script",
		async:false
	});
}
if(typeof(cacheVersion)=="undefined"){
	var cacheVersion="";
}
//獲取配置文件信息,此操做非必須
var ipconfig=null;
	$.ajax({
		url : headHref+'config/data?fileName=ip.json&v='+cacheVersion,
		dataType:"json",
		type : "POST",
		async: false,
		success : function(data) {
			ipconfig=data;
		}
	});
//全部要引入的js,iframe寫在獲取緩存版本號後
if(typeof(sc)=="undefined"){
	$.ajax({
		type : "GET",
		url : headHref+"js/config.js?v="+cacheVersion,
		dataType: "script",
		data:ipconfig,
		cache:true,
		async:false
	});
	var sc = new sourceController();
	sc.setRoot(headHref2);
		sc.css = [  sourcePath.pqgridMinC,sourcePath.pqgridC,sourcePath.webuploaderC,sourcePath.layerC];
		sc.script = [
		// sourcePath.WdatePicker,
		sourcePath.jqueryForm,
		sourcePath.layer,
		sourcePath.jqueryUi,
		sourcePath.pqgrid,
		sourcePath.localize,
		// sourcePath.init,
		sourcePath.tmInit,
		// sourcePath.fenyeInit,
		sourcePath.objToHtmlUtil,
		sourcePath.testLogin,
		sourcePath.es5Shim,
		sourcePath.es5Sham,
		sourcePath.json3,
		sourcePath.template,
		sourcePath.DateUtil];
		var iframePage=true;
		//獲取URL參數方法  參數必須在&後面
		 var reg = new RegExp('(^|&)' + 'pageLoadType' + '=([^&]*)(&|$)', 'i');
		 var r = window.location.search.substr(1).match(reg);
		 if (r != null) {
			 if("iframe"!= unescape(r[2])){
				iframePage=false;

			 };
		 }
		if(iframePage) // 根據須要額外添加的文件
		{
			 sc.addCss("../css/common.css"); // 額外添加的css文件,必須在加載資源以前加入
			 sc.addCss(ipconfig.address.spxc+"css/index.css?v="+cacheVersion);
//	     sc.addScript("javaScript/index.js"); // 額外添加的js文件,必須在加載資源以前加入
		}
		sc.setCallBack(function(){
				var mokuai=getQueryString("mokuai");
						if(mokuai!=null){
					$("#"+mokuai+" a")[0].click();
			   }
		});
		sc.addSource(); // 加載經常使用的js和css文件
	}else{
		$(function(){
		//不是第一次加載時運行到這裏
		});
	}

3.修改引用css的頁面所在項目cache-version.js文件
cache-version.js文件說明web

[推薦]方法二

不配置config.js,直接在方法一的步驟二寫入 sc.addCss方法ajax

sc.addCss(ipconfig.address.spxc+"css/index.css?v="+cacheVersion);

方法三

css有變更時手動修改全部該css文件的版本號v,代碼以下:json

<link rel="stylesheet" href="../css/form.css?v=2">

2.ajax get

如需禁止緩存需加上cache:false緩存

$.ajax({
		type : "GET",
		url : "../system/user/getCurrentUser",
		data:'json',
		//禁止緩存
		cache:false,
		success : function(data) {
			$(".name").html(data.fullName);
		}
	});

3.引入的js

步驟1.在頁面中引入js服務器

//獲取緩存版本號
if(typeof(cacheVersion)=="undefined"){
	$.ajax({
		type : "GET",
		url : headHref+'js/cache-version.js',
		dataType: "script",
		async:false
	});
}
if(typeof(cacheVersion)=="undefined"){
	var cacheVersion="";
}
//獲取配置文件信息,此操做非必須
var ipconfig=null;
	$.ajax({
		url : headHref+'config/data?fileName=ip.json&v='+cacheVersion,
		dataType:"json",
		type : "POST",
		async: false,
		success : function(data) {
			ipconfig=data;
		}
	});
//全部要引入的js,iframe寫在獲取緩存版本號後
$.ajax({
	type : "GET",
	//須要引入的js
	url : headHref+"example.js?v="+cacheVersion,
	dataType: "script",
	success : function(data) {
		//需在此js(config)以後執行的js
	}
});
$.ajax({
	type : "GET",
	//須要引入的js
	url : ipconfig.address.spxc+"exampleB.js?v="+cacheVersion,
	dataType: "script",
	success : function(data) {
		//需在此js(config)以後執行的js
	}
});
//iframe加載
if($(thisO).attr("href").indexOf("?") == -1){
	$(frame).src = $(thisO).attr("href")+"?v="+cacheVersion;
}else{
	$(frame).src = $(thisO).attr("href")+"&v="+cacheVersion;
}

步驟2.修改引用js的頁面所在項目cache-version.js文件
cache-version.js文件說明async

4.iframe

[推薦]方法一

經過target=iframe生成iframe,並修改cacheVersion(版本號大於等於tm-init-v0.1.5)

方法二

加載方式爲js加載地址,不配置config.js,直接在引入的css方法一的步驟二寫入 sc.addScript(方法

sc.addCss(ipconfig.address.spxc+"js/index.js?v="+cacheVersion);

方法三

加載方式爲js加載地址, 修改cacheVersion並編寫代碼,代碼見上方js部分

相關文章
相關標籤/搜索