儲存大小: 4kb左右,以20個為上限,
清理機制: ie
和opera
會清理近期最少使用的cookie
,firefox
會隨機清理cookie
。
主要應用: 購物車,登入狀態
缺陷: 同域內http請求都會帶cookie,浪費頻寬
cookie常見攜帶引數
屬性項屬性項介紹
name=
value
鍵值對,可以設定要儲存的 key/value,注意這裡的 name 不能和其他屬性項的名字一樣
expires/
max-age
過期時間,在設定的某個時間點後該 cookie 就會失效,如 expires=wednesday, 09-nov-99 23:12:40 gmt
domain
生成該 cookie 的網域名稱,如 domain=」soulteary.com」
path
該 cookie 是在當前的哪個路徑下生成的,如 path=/admin/
secure
如果設定了這個屬性,那麼只會在 ssh 連線時才會回傳該 cookie
http-only true:cookie只能在伺服器端讀取和修改,比較安全
cookie安全
如果 cookie 具有 httponly 屬性且不能通過客戶端指令碼訪問,則為 true;否則為 false。預設為 false。
ie 6 +都支援屬性 httponly,該屬性有助於緩解跨站點指令碼威脅。
document.cookie = name + '=' + escape(value); //設定cookie
//設定過期時間
function setcookie(name,value)
//讀取cookie
function getcookie(name)
else
}//刪除cookie
function delcookie(name)}
儲存內容: 只要是能序列化成字串的內容都可以儲存,利用json.stringify();
儲存大小: 5m
相容性: ie8+
主要應用:常用於ajax請求快取
缺陷: 1. localstorage不被爬蟲識別,所以不能用它完全取代url傳參
2. 不能跨域共享,所以不要用以儲存業務關鍵資訊,更加不要儲存安全資訊,(cookie可以通過window.name解決,但是localstorage不能)
try ));
} catch (e) ));}
儲存滿後會丟擲異常,只要捕獲異常,再刪除全部資料,即可。
json.stringify(localstorage).length 可以檢視當前使用了的大小,用5m減一下可以得出粗略的剩餘大小(但是很不精確)
//封裝過期控制**
function set(key, value) ));
} catch (e) ));}}
function get(key, exp) else }
if (window.localstorage) else
localstorage.setitem("b", str); //設定b的值
var b = localstorage.getitem("b"); //獲取b
localstorage.clear();//全部刪除
localstorage.removeitem(key);//清除key的值
sessionstorage 在關閉頁面後即被清空,而 localstorage 則會一直儲存。其他與localstorage一樣。
相容性: ie 9 +
主要應用:常用於靜態資源快取
儲存大小:5m
這樣瀏覽器就會向請求其它資源一樣向伺服器請求這個名為 test.manifest檔案了。
在伺服器端新增 mime-type text/cache-manifest
3.配置test.manifest 檔案
②network – 在此標題下列出的檔案需要與伺服器的連線,且不會被快取
③fallback – 在此標題下列出的檔案規定當頁面無法訪問時的回退頁面(比如 404 頁面)
更新:只有server端的manifest檔案改變,瀏覽器才會重新拉取離線資料,需要頁面再次重新整理(2次重新整理才能獲取新資源),更新是全域性性的,無法單獨更新某個檔案。
cache manifest
# versin 1.0.0 //版本,若修改,則重新拉取
cache:
/theme.css //快取該檔案
/main.js
network: //不會被快取的檔案
login.jsp
fallback: //回退頁面
/html/ /offline.html
JavaScript 儲存物件
web 儲存 api 提供了 sessionstorage 會話儲存 和 localstorage 本地儲存 兩個儲存物件來對網頁的資料進行新增 刪除 修改 查詢操作。屬性描述 length 返回儲存物件中包含多少條資料。方法描述 key n 返回儲存物件中第 n 個鍵的名稱 getitem key...
Javascript函式詳解
js中的函式是物件,每個函式都是function型別的例項,函式名只是乙個指向函式物件的指標,不會和函式繫結。js函式宣告方法如下 方法一 function sum num1,num2 方法二 var sum function num1,num2 注意分號,sum是函式的引用 方法三 var sum...
JavaScript 事件詳解
描述的是在頁面中接受事物的順序 由最具體的元素接收,然後逐級向上傳播至最不具體的元素節點 文件 最不具體的節點接收事件,而最集體的節點應該是最後接收事件 直接新增到html結構中 按鈕 這種處理方式,存在修改函式名,需要到html中修改事件呼叫的函式名的問題 把乙個函式賦值給乙個事件處理程式屬性 解...