摘要:下面就一個簡單例子來說明存取值曾田生獲取刪除指定值清空存儲事件和存儲發生變化就會觸發存儲事件,事件采用廣播的機制,會在同樣站點的作用域范圍內發送消息。
客戶端的存儲相當于給瀏覽器賦予了記憶功能。同一個站點的數據是如何共享數據的,一個頁面填寫的表單如何顯示在另一個頁面中,頁面關閉或瀏覽器退出,打開還能重新顯示原來的頁面,這些都可以依靠瀏覽器的存儲功能來實現。
一、Web存儲 1、localStorage和sessionStorage基本代碼實現
兩個屬性都代表同一個Storage對象,一個持久化關聯數組,數組使用字符串來索引,儲存的值也是字符串的形式。localStorage和sessionStorage的區別在于儲存的有效期和作用域不同,儲存形式和api是一樣的。
一般使用形式
localStorage.name = "曾田生"; // 儲存字符串 var name = localStorage.name; // 獲取存儲信息
當儲存數字時會自動轉化成字符串,所以在取值是需要手動轉換
localStorage.age = 666; var age = parseInt(localStorage.age);
日期也一樣
localStorage.time = (new Date()).toUTCString(); var time = new Date(Date.parse(localStorage.time));
咱們常用的json數據
localStorage.jsonData = JSON.stringify(data); var jsonData = JSON.parse(localStorage.jsonData);
存儲API
localStorage和sessionStorage除了可以通過上面的設置屬性來存儲值和通過查詢屬性來取值外,還有一套API操作數據。
下面就一個簡單例子來說明:
// 存取值 localStorage.setItem("name","曾田生"); var name = localStorage.getItem("name"); // 獲取 key - value var keyName = localStorage.key(0); var value = localStorage.getItem(keyName); // 刪除指定值 localStorage.removeItem("name"); // 清空 localStora localStorage.clear();
存儲事件
localStorage和sessionStorage 存儲發生變化就會觸發存儲事件,事件采用廣播的機制,會在同樣站點的作用域范圍內發送消息。注意的是 localStorage和sessionStorage 的區別在于作用域的不同,所以事件觸發的窗口也有區別,作用域在下面小節會講到,還有一點是在發生存儲數據改變的窗口上是不會觸發該存儲事件的。
下面一個小例子:
我打開了兩個頁面 index.html
btn.addEventListener("click", function () { localStorage.name = "曾田生"; // 儲存字符串 var name = localStorage.name; // 獲取存儲信息 })
index2.html 做存儲事件監聽:window.addEventListener
window.addEventListener("storage", function(e){ console.log(e); console.log("oldValue: "+ e.oldValue + " newValue:" + e.newValue); });
點擊 index.html 的 button 后 index2.html打印出如下消息
存儲有效期和作用域
localStorage和sessionStorage 的使用和api是相同的,但它們的有效期和作用域是有區別的。
(1)、localStorage
localStorage 的作用域限定在文檔源級別,什么意思呢,協議、主機名、端口三者一樣那就是同一文檔源,同源的文檔間共享同樣的localStorage數據。比如如下:
http://www.example.com // 協議:http;主機名:www.example.com https://www.example.com // 不同協議 http://demo.example.com // 不同 主機名 http://www.example.com:8000 // 不同端口
以上只有不滿足同源要求,即使在同一臺服務器也不能共享localStorage數據。
(2)、sessionStorage
首先 sessionStorage的作用域也是限定在同源里面,并且sessionStorage的作用域還被限定在窗口中。
比如:
A.html
B.html
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/61841.html
摘要:本地存儲的方案傳統把信息存儲到客戶端的瀏覽器中但是項目服務器端也是可以獲取的把信息存儲到服務器上的服務器存儲永久存儲在客服端的本地。 在客戶端運行的js是不能操作用戶電腦磁盤中的文件的(這是為了保護客戶端運行的安全)。 1、js中的本地存儲: 使用js向瀏覽器的某一個位置中存儲一些內容,瀏覽器即使關閉了,存儲的信息也不會銷毀,當在重新打開瀏覽器的時候我們依然可以獲取到上一次存儲的信息。...
摘要:字節流這個簡單的模型將數據存儲為長度不透明的字節字符串變量,將任何形式的內部組織留給應用層。字節流數據存儲的代表例子包括文件系統和云存儲服務。使用同步存儲會阻塞主線程,并為應用程序的創建凍結體驗。 這是專門探索 JavaScript 及其所構建的組件的系列文章的第 16 篇。 想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等著你! 如果你錯過了前面的章節,可以在這里找到它...
摘要:存儲客戶端存儲有幾種方式,存儲就是其中一種。瀏覽器兼容性存儲有效期永久性。實際上,的數據是寫入磁盤中,每次讀取數據時,實際上是從硬盤驅動器上讀取這些字節。所以不要在客戶端存儲敏感信息,比如密碼或信用卡信息。 WEB存儲 客戶端存儲有幾種方式,WEB存儲就是其中一種。最初作為H5的一部分被定義成API形式,后來被剝離出來作為獨立的標準。所描述的API包含localStorage對象和se...
摘要:維護瀏覽器和服務器端會話狀態的一種方式,一般用于保存用戶身份信息。服務器端生成推送到瀏覽器端,瀏覽器負責保存和維護數據。 Cookie 維護瀏覽器和服務器端會話狀態的一種方式,一般用于保存用戶身份信息。 服務器端生成Cookie推送到瀏覽器端,瀏覽器負責保存和維護數據。 特點 域名下的所用請求都會帶上Cookie 每條Cookie限制在4KB左右 Cookie在過期時間之前一直有效,若...
閱讀 1969·2021-10-25 09:48
閱讀 2798·2021-09-22 14:59
閱讀 1761·2019-08-29 16:52
閱讀 866·2019-08-29 16:07
閱讀 2308·2019-08-29 12:38
閱讀 1760·2019-08-26 13:23
閱讀 883·2019-08-26 11:49
閱讀 3277·2019-08-26 10:56