瀏覽器緩存
- 所有的數據都可以存到服務器中,但這樣並不高效,當我們訪問網頁的時候,一會卡頓,二會浪費服務器的存儲空間,三會給服務器造成壓力
- 瀏覽器緩存,可以提高網站性能和瀏覽器的速度,但對於需要經常更新的網頁來說,緩存導致用戶無法顯示更新后的樣式
如何通過js清除緩存?
隨機數
- 腳本並不存在,而是服務端動態生成的,因此帶了個版本號,以示區別。 即路徑或者文件名后的隨機數對於文件來說 等價於但瀏覽器會認為他是 該文件的某個版本!
- 客戶端會緩存這些css或js文件,因此每次升級了js或css文件后,改變版本號,客戶端瀏覽器就會重新下載新的js或css文件 ,刷性緩存的作用
/* 圖片的路徑+圖片名+隨機數=圖片的版本號更替 */ $("#pic_code").attr('src','/static/img/verify_code.png'+'?temp=' + Math.random()); /* Math.random() 只能在Javascript 下起作用 */ <script type="text/javascript" src="core.js?v=20140829"></script>
/*時間*/
?v=new Date().getTime();
meta
- 在html里head區添加代碼:
<meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="content-type" content="no-cache, must-revalidate" /> <meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT"/>
ajax
- 設置屬性cache:false,讓ajax不調用瀏覽的緩存。
cache:false - 用ajax請求服務器最新文件,並加上請求頭If-Modified-Since和Cache-Control,如下:
beforeSend :function(xmlHttp){ xmlHttp.setRequestHeader("If-Modified-Since","0"); xmlHttp.setRequestHeader("Cache-Control","no-cache"); }
replace
- replace的原理就是用當前頁面替換掉replace參數指定的頁面
<script language="javascript"> function jump(){ window.location.replace("b.html"); } </script>
