本篇文章為大家帶來了關於javascript的相關知識,其中主要介紹了JavaScript使用localStorage存儲數據,文中示例代碼介紹的非常詳細,具有一定的參考價值,希望對大家有幫助。
【相關推薦:javascript影片教學、web前端】
##背景
以前js都是Session 和#Cookie 來儲存訊息,彷彿我還停留在那個時候,一問同事有沒有新的solution,才知道現在已經有HTML5 localStorage 本機儲存這個東西,可以在瀏覽器端儲存資料。
記得最早的Cookies只能存很小的東西,4KB的樣子,而且安全性很差,在IE6時代一個網域也只能二十個Cookies吧,限制挺大,當然IE還有userData的東西,沒什麼用。 Flash也帶了一個Storage,相對比較大,空間是Cookie的25倍左右,當時現在也廢棄Flash了。
到了H5時代,就統一了,LocalStorage一統天下。官方建議是每個網站 5MB ,非常大了,雖然瀏覽器設定會有差異,但是一般就存些JSON或者字串或者快取來說,足夠了。
HTML5 LocalStorage 本機儲存
-
#sessionStorage:已儲存的資料用於瀏覽器的一次會話,當會話結束(通常是該視窗關閉),資料被清空;
-
localStorage:已儲存的資料長期存在,下次造訪該網站的時候,網頁可以直接讀取以前儲存的資料。除了保質期的長短不同,這兩個物件的屬性和方法完全一樣。
function checkStorageSupport() { // sessionStorage if (window.sessionStorage) { return true; } else { return false; } // localStorage if (window.localStorage) { return true; } else { return false; } }
Storage 動作
sessionStorage 和localStorage 儲存的數據,都以「Key-Value鍵值對」的形式存在。也就是說,每一項資料都有一個鍵名和對應的值。所有的資料都是以文字格式儲存。
//sessionStorage 操作 sessionStorage.setItem("key","value"); // setItem方法,存储变量名为key,值为value的变量 var valueSession = sessionStorage.getItem("key"); // getItem方法,读取存储变量名为key的值 sessionStorage.removeItem('key'); // removeItem方法,删除变量名为key的存储变量 sessionStorage.clear(); // clear方法,清除所有保存数据 //localStorage 操作 localStorage.setItem("key","value"); // 存储变量名为key,值为value的变量 localStorage.key = "value" // 同setItem方法,存储数据 var valueLocal = localStorage.getItem("key"); // 读取存储变量名为key的值 var valueLocal = localStorage.key; // 同getItem,读取数据 localStorage.removeItem('key'); // removeItem方法,删除变量名为key的存储变量 localStorage.clear(); // clear方法,清除所有保存的数据 // 利用length属性和key方法,遍历所有的数据 for(var i = 0; i < localStorage.length; i++) { console.log(localStorage.key(i)); } // 存储 localStorage 数据为 Json 格式 value = JSON.stringify(jsonValue); // 将 JSON 对象 jsonValue 转化成字符串 localStorage.setItem("key", value); // 用 localStorage 保存转化好的的字符串 // 读取 localStorage 中 Json 格式数据 var value = localStorage.getItem("key"); // 取回 value 变量 jsonValue = JSON.parse(value); // 把字符串转换成 JSON 对象
Storage 事件
當儲存的資料發生變化時,會觸發 storage 事件。我們可以指定這個事件的回呼函數。window.addEventListener("storage",onStorageChange);回呼函數接受一個event物件作為參數。這個event物件的key屬性,保存發生變化的鍵名。
function onStorageChange(e) { console.log(e.key); }除了key屬性,event物件的屬性還有三個:
- oldValue:更新前的值。如果該鍵為新增加,則這個屬性為null。
- newValue:更新後的值。如果該鍵被刪除,則這個屬性為null。
- url:原始觸發storage事件的那個網頁的網址。
擴充知識
1、localStorage和sessionStorage是HTML5 Web儲存的提供的兩種儲存方式,在IE7以上以及大多數瀏覽器都是支援的2、localStorage和sessionStorage的區別:(1)、localStorage和sessionStorage一樣都是用來儲存客戶端臨時資訊的物件。 (2)、他們都是只能儲存字串類型的對象(雖然規範中可以儲存其他原生類型的對象,但是目前為止沒有瀏覽器對其進行實現)。 (3)、localStorage生命週期是永久,這表示除非使用者顯示在瀏覽器提供的UI上清除localStorage訊息,否則這些資訊將永遠存在。 (記錄在記憶體中的)sessionStorage生命週期為當前視窗或標籤頁,一旦視窗或標籤頁被關閉了,那麼所有透過sessionStorage儲存的資料也就被清空了(回話性質的儲存)
(4)、不同瀏覽器無法分享localStorage或sessionStorage中的資訊。相同瀏覽器的不同頁間可以共用相同的localStorage(頁面屬於相同網域和連接埠),但是不同頁面或標籤頁間無法共享sessionStorage的資訊。
這裡需要注意的是,頁面及標籤頁僅指頂級窗口,如果一個標籤頁包含多個iframe標籤且他們屬於同源頁面,那麼他們之間是可以共享sessionStorage的。 (同源原則)
3、localStorage和sessionStorage可儲存資料的大小一般為5MB
【相關推薦:javascript影片教學、web前端】
以上是JavaScript使用localStorage儲存數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1
好用且免費的程式碼編輯器