1. 程式人生 > >HTML5本地儲存localStorage、sessionStorage基本用法、遍歷操作、異常處理等

HTML5本地儲存localStorage、sessionStorage基本用法、遍歷操作、異常處理等

HTML5 的本地儲存 API 中的 localStorage 與 sessionStorage 在使用方法上是相同的,區別在於 sessionStorage 在關閉頁面後即被清空,而 localStorage 則會一直儲存。我們這裡以 localStorage 為例,簡要介紹下 HTML5 的本地儲存,並針對如遍歷等常見問題作一些示例說明。 localStorage 是 HTML5 本地儲存的 API,使用鍵值對的方式進行存取資料,存取的資料只能是字串。不同瀏覽器對該 API 支援情況有所差異,如使用方法、最大儲存空間等。

一、localStorage API 基本使用方法

localStorage API 使用方法簡單易懂,如下為常見的 API 操作及示例: 設定資料:localStorage.setItem(key,value); 示例:

複製程式碼 程式碼如下:
for(var i=0; i<10; i++){
localStorage.setItem(i,i);
}
獲取資料:localStorage.getItem(key) 獲取全部資料:localStorage.valueOf() 示例:

複製程式碼 程式碼如下: for(var i=0; i<10; i++){
localStorage.getItem(i);
}
刪除資料:localStorage.removeItem(key) 示例:

複製程式碼 程式碼如下: for(var i=0; i<5; i++){
localStorage.removeItem(i);
}
清空全部資料:localStorage.clear() 獲取本地儲存資料數量:localStorage.length 獲取第 N 個數據的 key 鍵值:localStorage.key(N)

2. 遍歷 key 鍵值方法


複製程式碼 程式碼如下:
for(var i=localStorage.length - 1 ; i >=0; i--){
console.log('第'+ (i+1) +'條資料的鍵值為:' + localStorage.key(i) +',資料為:' + localStorage.getItem(localStorage.key(i)));
}


3. 儲存大小限制測試及異常處理

3.1 資料儲存大小限制測試

不同瀏覽器對 HTML5 的本地儲存大小基本均有限制,一個測試的結果如下:

複製程式碼 程式碼如下: IE 9 > 4999995 + 5 = 5000000
firefox 22.0 > 5242875 + 5 = 5242880
chrome 28.0 > 2621435 + 5 = 2621440
safari 5.1 > 2621435 + 5 = 2621440
opera 12.15 > 5M (超出則會彈出允許請求更多空間的對話方塊)

測試程式碼參考:

複製程式碼 程式碼如下:
<!DOCTYPE html>
<html>
<head>
<script>
function log( msg ) {
console.log(msg);
alert(msg);
}</p> <p> var limit;
var half = '1'; //這裡會換成中文再跑一遍
var str = half;
var sstr;
while ( 1 ) {
try {
localStorage.clear();
str += half;
localStorage.setItem( 'cache', str );
half = str;
} catch ( ex ) {
break;
}
}
var base = str.length;
var off = base / 2;
var isLeft = 1;
while ( off ) {
if ( isLeft ) {
end = base - (off / 2);
} else {
end = base + (off / 2);
}</p> <p> sstr = str.slice( 0, end );
localStorage.clear();
try {
localStorage.setItem( 'cache', sstr );
limit = sstr.length;
isLeft = 0;
} catch ( e ) {
isLeft = 1;
}</p> <p> base = end;
off = Math.floor( off / 2 );
}</p> <p> log( 'limit: ' + limit );
</script>
</html>


3.2 資料儲存異常處理

複製程式碼 程式碼如下:
try{
localStorage.setItem(key,value);
}catch(oException){
if(oException.name == 'QuotaExceededError'){
console.log('超出本地儲存限額!');
//如果歷史資訊不重要了,可清空後再設定
localStorage.clear();
localStorage.setItem(key,value);
}
}

相關推薦

HTML5本地儲存localStoragesessionStorage基本用法操作異常處理

HTML5 的本地儲存 API 中的 localStorage 與 sessionStorage 在使用方法上是相同的,區別在於 sessionStorage 在關閉頁面後即被清空,而 localStorage 則會一直儲存。我們這裡以 localStorage 為例,簡

HTML5 本地儲存 localStoragesessionStorage儲存大小限制處理

HTML5 的本地儲存 API 中的 localStorage 與 sessionStorage 在使用方法上是相同的,區別在於 sessionStorage 在關閉頁面後即被清空,而 localStorage 則會一直儲存。我們這裡以 localStorage 為例,簡

HTML5 Web儲存--localStoragesessionStorage

在客戶端儲存資料 HTML5 提供了兩種在客戶端儲存資料的新方法: localStorage - 沒有時間限制的資料儲存 sessionStorage - 針對一個 session 的資料儲存 之前,這些都是由 cookie 完成的。但是 cookie 不適合大量資料

本地儲存localStoragesessionStorage的區別,都在什麼地方使用?

localStorage:長期儲存,除非設定生命週期,否則不銷燬 sessionStorage:會話期間有效,關閉瀏覽器自動銷燬。設定生命週期也可銷燬。 共性:使用setItem(key,value)新增或者修改資訊 使用getI

html5本地儲存localStorage

localStorage.setItem(att)會自動將att儲存成字串形式,如: var arr=[1,2,3]; localStorage.setItem("temp",arr); typeof localStorage.getItem("temp

HTML5 本地儲存 localstorage 安全分析

在HTML5本地儲存出現以前,WEB資料儲存的方法已經有很多,比如HTTP Cookie,IE userData,Flash Cookie,Google Gears。其實再說細點,瀏覽WEB的歷史記錄也算是本地儲存的一種方式。到目前為止,HTML5本地儲存方式已經獲得了廣

QT,QVector 基本用法[例項講解]

        QVector,是Qt對所有陣列的封裝,比如我們想要一個int型別陣列,我們原先會寫int array[10],我們在Qt裡可以寫QVector <int>  array(10),賦值的時候,我們依然可以照舊array[5]=4;想獲取某一項的值

迭代器Iterator基本用法--集合

之前對迭代器這個概念有些模糊,今天特意從網上查了一下,參考著幾篇文章,整理出它的基本用法–遍歷集合,希望能對大家有所幫助(本人釋出的第一篇文章,若有不足之處,敬請指正,不勝感激) 基本概念:迭代器是一種設計模式,是一個物件,可遍歷並選擇序列中的物件,而開發人員不

資料結構實踐專案——圖的基本運算及操作

本文是針對[資料結構基礎系列(7):圖]中第1-9課時的實踐專案。 0701 圖結構導學 0702 圖的定義 0703 圖的基本術語 0704 圖的鄰接矩陣儲存結構及演算法 0705 圖的鄰接表儲存結構及演算法 0706 圖的遍歷 0707 非連通

【Vue】vuex儲存本地儲存(localstoragesessionstorage)的區別

1. sessionStorage    sessionStorage 方法針對一個 session 進行資料儲存。當用戶關閉瀏覽器視窗後,資料會被刪除。   用法:      儲存: 1. 點(.)運算子     

HTML5本地存儲應用sessionStoragelocalStorage

有效 臨時 都是 ear cal query 會話 function note 在html5之前,瀏覽器要實現數據的存儲,一般都是用cookie,但是cookie有域名和大小限定. html5流行之後,可以通過localStorage和sessionStorage實現瀏覽

localStorage本地儲存)與sessionStorage(會話儲存)的區別與方法

localStorage生命週期是永久,使用者除非在瀏覽器上刪除localStorage的資訊,否則這些資訊將永遠存在於瀏覽器中。存放資料大小為一般為5MB, 而且它僅在客戶端(即瀏覽器)中儲存,不參與和伺服器的通訊。 sessionStorage僅在當前會話

本地儲存localStorage用法總結

一、什麼是localStorage? 在HTML5中,新加入了一個localStorage特性,這個特性主要是用來作為本地儲存來使用的,解決了cookie儲存空間不足的問題(cookie中每條cookie的儲存空間為4k),localStorage中一般瀏覽器支援的是5M大小

本地儲存localStorage用法詳解

一、什麼是localStorage? 在HTML5中,新加入了一個localStorage特性,這個特性主要是用來作為本地儲存來使用的,解決了cookie儲存空間不足的問題(cookie中每條cookie的儲存空間為4k),localStorage中一般瀏覽器支援的是5M大小,這個在不同的瀏覽器

localStorage本地儲存)與sessionStorage(會話儲存)的區別

localStorage生命週期是永久,這意味著除非使用者顯示在瀏覽器提供的UI上清除localStorage資訊,否則這些資訊將永遠存在。存放資料大小為一般為5MB,而且它僅在客戶端(即瀏覽器)中儲存,不參與和伺服器的通訊。sessionStorage僅在當前會話下有效,關

HTML5本地儲存indexDB新建資料庫資料庫增刪改查操作

var content = null; // 本演示使用的資料庫名稱 var dbName = 'project'; // 版本 var version = 1; // 資料庫資料結果 var db; // 開啟資料庫 var DBO

關於本地快取localstoragesessionStorage 陣列 (array)字串(string) 物件(object)的儲存技巧和注意事項

localstorage與sessionStorage的使用方法都是一樣的 唯一的區別在與 localstorage是永久儲存在你的計算機上  sessionstorage只要瀏覽器關閉,儲存就消失 <!DOCTYPE html> <html> &l

本地儲存(localStorage)記錄

本地 ora value gif locals search getitem -- 返回 - 本地存儲 + localStorage.getItem("search_history") 獲取本地存儲 + localStorage.setItem("a","100") 設置

ES系列二十kibana基本用法

可能 基本 com src 多個 discover 點擊 play spa 一. 定義索引模式匹配 1、前綴模糊匹配,一個模式匹配多個索引   每一個數據集導入到Elasticsearch後會有一個索引匹配模式,在上段內容莎士比亞數據集有一個索引名稱為sh

工具類CollectionsArrays基本用法練習

import java.util.ArrayList; import java.util.Collections; import java.util.List; /* * 工具類練習:Collection */ public class Demo07 {