Web專案中,常用的幾種清理瀏覽器快取的方式
在系統中遇到頁面中的影象已經修改,資料庫的資料也更新成了最新的資料,但在另一個模型的頁面查詢此影象時,依然是未修改的狀態,經確認是頁面的快取沒有清理,清理的方法是:
在html檔案中,增加清理快取的內容:
<head>
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="expires" CONTENT="0">
</head>
<body>........</body>;
其他的清理快取的方法:
在B/S架構的專案中,訪問web專案時,往往需要清理瀏覽器的快取資料,js ,css 等等。
方法1:
在引用的js ,css ,圖片,等檔案的url 處加一個變數,生成一個隨機數字
<script type="text/javascript" src="<%=request.getContextPath()%>/test/common/jquery.js?r="+Math.random()></srcipt>
方法2:
在jsp或html頁面中,meta標籤中新增屬性值
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="0">
方法3:
在js提交表單時的請求方法上新增控制快取的方法
如果是form表單提交,則在表單上新增一個屬性
<body onLoad="javascript:document.creatForm.reset();">
2.如果是jquery的ajax提交方式,則如下,新增before函式做處理
$.ajax({
url:'QueryUserList.do',
dataType:'json',
data:{},
beforeSend :function(xmlHttp){
xmlHttp.setRequestHeader("If-Modified-Since","0");
xmlHttp.setRequestHeader("Cache-Control","no-cache");
},
success:function(response){
//操作
}
async:false
});
3.或者新增cache 屬性
$.ajax({
url:'QueryUserList.do',
dataType:'json',
data:{},
cache:false,
ifModified :true ,
success:function(response){
//操作
}
async:false
});
方法4:
使用Crtl+F5 跳過快取,請求新資料,支援部分瀏覽器
方法5:
建立一個windows環境的清理瀏覽器快取的批處理檔案(clearCache.bat),在開啟瀏覽器之前執行一下清理快取的批處理檔案
//呼叫的是Windows 自帶的API函式,針對IE有效,程式碼如下:
@echo 現在清除Cookies
@Rundll32 InetCpl.cpl,ClearMyTracksByProcess 2
@echo 現在清除瀏覽歷史
@Rundll32 InetCpl.cpl,ClearMyTracksByProcess 1
@echo 現在清除臨時資料夾
@Rundll32 InetCpl.cpl,ClearMyTracksByProcess 8
@echo 現在清除儲存的密碼
@Rundll32 InetCpl.cpl,ClearMyTracksByProcess 32
@echo 現在清除表單資料
@Rundll32 InetCpl.cpl,ClearMyTracksByProcess 16
@echo 清除以上所有專案
@Rundll32 InetCpl.cpl,ClearMyTracksByProcess 255
————————————————
版權宣告:本文為CSDN博主「dreaming317」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/dreaming317/article/details/104268185