詳解JavaScript儲存

2021-07-23 23:29:14 字數 2484 閱讀 4803

儲存大小:   4kb左右,以20個為上限,

清理機制:  ieopera會清理近期最少使用的cookiefirefox會隨機清理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中修改事件呼叫的函式名的問題 把乙個函式賦值給乙個事件處理程式屬性 解...