頁面部署到服務器後需作到按F5刷新就能保持頁面爲最新文件,無需手動清除緩存.css
整體思路,經過修改url地址來防止頁面緩存.具體規則以下:html
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">
如需禁止緩存需加上cache:false緩存
$.ajax({ type : "GET", url : "../system/user/getCurrentUser", data:'json', //禁止緩存 cache:false, success : function(data) { $(".name").html(data.fullName); } });
步驟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
經過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部分