婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTML5 LocalStorage 本地存儲詳細概括(多圖)

HTML5 LocalStorage 本地存儲詳細概括(多圖)

熱門標簽:電話機器人如何 貸款電銷人工和機器人哪個好 電視購物電銷外呼系統 百應電銷機器人產業 杭州營銷電銷機器人供應商 飛亞外呼系統 聯通400電話申請 西寧智能外呼系統加盟 高德地圖標注賓館位置

說到本地存儲,這玩意真是歷盡千辛萬苦才走到HTML5這一步,之前的歷史大概如下圖所示:


 

最早的Cookies自然是大家都知道,問題主要就是太小,大概也就4KB的樣子,而且IE6只支持每個域名20個cookies,太少了。優勢就是大家都支持,而且支持得還蠻好。很早以前那些禁用cookies的用戶也都慢慢的不存在了,就好像以前禁用javascript的用戶不存在了一樣。

userData是IE的東西,垃圾。現在用的最多的是Flash吧,空間是Cookie的25倍,基本夠用。再之后Google推出了Gears,雖然沒有限制,但不爽的地方就是要裝額外的插件(沒具體研究過)。到了HTML5把這些都統一了,官方建議是每個網站5MB,非常大了,就存些字符串,足夠了。比較詭異的是居然所有支持的瀏覽器目前都采用的5MB,盡管有一些瀏覽器可以讓用戶設置,但對于網頁制作者來說,目前的形勢就5MB來考慮是比較妥當的。


 

支持的情況如上圖,IE在8.0的時候就支持了,非常出人意料。不過需要注意的是,IE、Firefox測試的時候需要把文件上傳到服務器上(或者localhost),直接點開本地的HTML文件,是不行的。

首先自然是檢測瀏覽器是否支持本地存儲。在HTML5中,本地存儲是一個window的屬性,包括localStorage和sessionStorage,從名字應該可以很清楚的辨認二者的區別,前者是一直存在本地的,后者只是伴隨著session,窗口一旦關閉就沒了。二者用法完全相同,這里以localStorage為例。

if(window.localStorage){
 alert('This browser supports localStorage');
}else{
 alert('This browser does NOT support localStorage');
}

存儲數據的方法就是直接給 window.localStorage 添加一個屬性,例如: window.localStorage.a 或者 window.localStorage["a"] 。它的讀取、寫、刪除操作方法很簡單,是以鍵值對的方式存在的,如下:

localStorage.a = 3;//設置a為"3"
localStorage["a"] = "sfsf";//設置a為"sfsf",覆蓋上面的值
localStorage.setItem("b","isaac");//設置b為"isaac"
var a1 = localStorage["a"];//獲取a的值
var a2 = localStorage.a;//獲取a的值
var b = localStorage.getItem("b");//獲取b的值
localStorage.removeItem("c");//清除c的值

這里最推薦使用的自然是 getItem() 和 setItem() ,清除鍵值對使用 removeItem() 。如果希望一次性清除所有的鍵值對,可以使用 clear() 。另外, HTML5 還提供了一個 key() 方法,可以在不知道有哪些鍵值的時候使用,如下:

var storage = window.localStorage;
function showStorage(){
 for(var i=0;i<storage.length;i++){
  //key(i)獲得相應的鍵,再用getItem()方法獲得對應的值
  document.write(storage.key(i)+ " : " + storage.getItem(storage.key(i)) + "<br>");
 }
}

寫一個最簡單的,利用本地存儲的計數器:

var storage = window.localStorage;
if (!storage.getItem("pageLoadCount")) storage.setItem("pageLoadCount",0);
storage.pageLoadCount = parseInt(storage.getItem("pageLoadCount")) + 1;//必須格式轉換
document.getElementByIdx_x("count").innerHTML = storage.pageLoadCount;
showStorage();

不斷刷新就能看到數字在一點點上漲,如下圖所示:


 

需要注意的是,HTML5本地存儲只能存字符串,任何格式存儲的時候都會被自動轉為字符串,所以讀取的時候,需要自己進行類型的轉換。這也就是上一段代碼中parseInt必須要使用的原因。

另外,在iPhone/iPad上有時設置setItem()時會出現詭異的QUOTA_EXCEEDED_ERR錯誤,這時一般在setItem之前,先removeItem()就ok了。

HTML5的本地存儲,還提供了一個storage事件,可以對鍵值對的改變進行監聽,使用方法如下:

if(window.addEventListener){
 window.addEventListener("storage",handle_storage,false);
}else if(window.attachEvent){
 window.attachEvent("onstorage",handle_storage);
}
function handle_storage(e){
 if(!e){e=window.event;}
 //showStorage();
}

對于事件變量e,是一個StorageEvent對象,提供了一些實用的屬性,可以很好的觀察鍵值對的變化,如下表:



Property

 


Type

 


Description

 


key

 


String

 


The named key that was added, removed, or moddified

 


oldValue

 


Any

 


The previous value(now overwritten), or null if a new item was added

 


newValue

 


Any

 


The new value, or null if an item was added

 


url/uri

 


String

 


The page that called the method that triggered this change

這里添加兩個鍵值對a和b,并增加一個按鈕。給a設置固定的值,當點擊按鈕時,修改b的值:

<body>
<p>You have viewed this page <span id="count">0</span>  time(s).</p>
<p><input type="button" value="changeStorage" onClick="changeS()"/></p>
<script>
var storage = window.localStorage;
if (!storage.getItem("pageLoadCount")) storage.setItem("pageLoadCount",0);
storage.pageLoadCount = parseInt(storage.getItem("pageLoadCount")) + 1;//必須格式轉換
document.getElementByIdx_x("count").innerHTML = storage.pageLoadCount;
showStorage();
if(window.addEventListener){
 window.addEventListener("storage",handle_storage,false);
}else if(window.attachEvent){
 window.attachEvent("onstorage",handle_storage);
}
function handle_storage(e){
 if(!e){e=window.event;}
 showObject(e);
}
function showObject(obj){
 //遞歸顯示object
 if(!obj){return;}
 for(var i in obj){
  if(typeof(obj[i])!="object" || obj[i]==null){
   document.write(i + " : " + obj[i] + "<br/>");
  }else{
   document.write(i + " : object" + "<br/>");
  }
 }
}
storage.setItem("a",5);
function changeS(){
 //修改一個鍵值,測試storage事件
 if(!storage.getItem("b")){storage.setItem("b",0);}
 storage.setItem('b',parseInt(storage.getItem('b'))+1);
}
function showStorage(){
 //循環顯示localStorage里的鍵值對
 for(var i=0;i<storage.length;i++){
  //key(i)獲得相應的鍵,再用getItem()方法獲得對應的值
  document.write(storage.key(i)+ " : " + storage.getItem(storage.key(i)) + "<br>");
 }
}
</script>
</body>

測試發現,目前瀏覽器對這個支持不太好,僅iPad和Firefox支持,而且Firefox支持得亂糟糟,e對象根本沒有那些屬性。iPad支持非常好,用的是e.uri(不是e.url),臺式機上的Safari不行,詭異。

目前瀏覽器都帶有很好的開發者調試功能,下面分別是Chrome和Firefox的調試工具查看LocalStorage:


 


 

另外,目前javascript使用非常多的json格式,如果希望存儲在本地,可以直接調用JSON.stringify()將其轉為字符串。讀取出來后調用JSON.parse()將字符串轉為json格式,如下所示:

var details = {author:"isaac","description":"fresheggs","rating":100};

storage.setItem("details",JSON.stringify(details));

details = JSON.parse(storage.getItem("details"));


 

JSON對象在支持localStorage的瀏覽器上基本都支持,需要注意的是IE8,它支持JSON,但如果添加了如下的兼容模式代碼,切到IE7模式就不行了(此時依然支持localStorage,雖然顯示window.localStorage是[object],而不是之前的[object Storage],但測試發現getItem()、setItem()等均能使用)。

<meta content="IE=7" http-equiv="X-UA-Compatible"/>

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助~如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持!

標簽:煙臺 安慶 玉溪 內蒙古 邯鄲 牡丹江 晉中 撫州

巨人網絡通訊聲明:本文標題《HTML5 LocalStorage 本地存儲詳細概括(多圖)》,本文關鍵詞  HTML5,LocalStorage,本地,存儲,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5 LocalStorage 本地存儲詳細概括(多圖)》相關的同類信息!
  • 本頁收集關于HTML5 LocalStorage 本地存儲詳細概括(多圖)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人久久18免费网站麻豆 | 视频一区在线播放| 亚洲日本在线天堂| 日韩一区中文字幕| 亚洲激情图片qvod| 亚洲成人三级小说| 久久精品国产亚洲高清剧情介绍 | 国产一区二区三区日韩| 激情综合色丁香一区二区| 喷水一区二区三区| 国产精品一区二区免费不卡| 国产在线精品视频| 94色蜜桃网一区二区三区| 91在线一区二区| 欧美在线观看你懂的| 欧美肥妇free| 国产性色一区二区| 樱花影视一区二区| 美腿丝袜亚洲三区| 国产v日产∨综合v精品视频| 99re成人精品视频| 欧美日本一区二区| 国产午夜亚洲精品理论片色戒 | 亚洲色图第一区| 调教+趴+乳夹+国产+精品| 免费高清视频精品| 成人av在线资源网站| 91成人在线观看喷潮| 欧美刺激午夜性久久久久久久| 日韩精品中文字幕在线不卡尤物| 久久综合av免费| 亚洲美女偷拍久久| 国产一区二区三区不卡在线观看| 93久久精品日日躁夜夜躁欧美| 欧美精品少妇一区二区三区| 国产婷婷一区二区| 视频一区视频二区在线观看| 国产精品夜夜嗨| 欧美日韩极品在线观看一区| 国产午夜精品在线观看| 天堂一区二区在线| 99国产精品久久久久久久久久久| 日韩一级大片在线| 亚洲一区二区影院| 成人在线综合网站| 欧美精品一卡二卡| 亚洲一本大道在线| 成人国产精品免费观看视频| 日韩精品一区二区三区在线| 一区二区免费在线| 99久精品国产| 久久综合九色综合欧美就去吻 | 在线视频综合导航| 国产亚洲va综合人人澡精品| 免费在线看一区| 欧美日韩不卡在线| 亚洲一区在线观看免费观看电影高清| 国产精品综合久久| 欧美大片在线观看| 首页国产欧美久久| 91精品久久久久久久久99蜜臂| 亚洲日本乱码在线观看| 国产·精品毛片| 久久久不卡影院| 国产精品一区二区果冻传媒| 亚洲免费观看高清完整版在线| 粉嫩蜜臀av国产精品网站| 国产午夜亚洲精品羞羞网站| 3d成人动漫网站| 亚洲男同性视频| 91在线免费视频观看| 日韩欧美国产系列| 婷婷久久综合九色综合伊人色| 色偷偷久久人人79超碰人人澡| 中文字幕在线视频一区| 风流少妇一区二区| 国产精品久久久久永久免费观看 | 国产日韩三级在线| 精品系列免费在线观看| 欧美精品一区二区三区蜜臀| 国产自产2019最新不卡| 久久久久久久久久久久久夜| 国产精品自拍网站| 国产精品久久久久三级| 91美女福利视频| 亚洲影院免费观看| 欧美成人女星排行榜| 卡一卡二国产精品 | 亚洲国产精品精华液2区45| 国产成人av电影在线| 国产精品三级av在线播放| av在线不卡免费看| 亚洲一区二区高清| 91精品国产一区二区三区香蕉| 麻豆极品一区二区三区| 久久综合九色综合欧美就去吻| 成人性生交大合| 亚洲综合无码一区二区| 日韩午夜精品电影| 国产成人h网站| 一区二区三区四区在线免费观看| 91精品综合久久久久久| 国产精品1024久久| 亚洲高清免费观看高清完整版在线观看 | 色综合久久88色综合天天免费| 亚洲一二三四久久| 精品久久久久久无| 成人丝袜视频网| 偷拍亚洲欧洲综合| 欧美国产精品v| 欧美精品在线一区二区三区| 国产精品99久久久久久久女警| 亚洲免费观看高清在线观看| 日韩免费在线观看| 91丨九色丨国产丨porny| 毛片av中文字幕一区二区| 中文字幕日韩一区| 久久天堂av综合合色蜜桃网| 91精品1区2区| 国产成人福利片| 视频一区中文字幕国产| 亚洲日本在线看| 国产三级三级三级精品8ⅰ区| 日本高清不卡在线观看| 国产成人综合自拍| 蜜臀久久99精品久久久画质超高清| 最新不卡av在线| 国产亚洲美州欧州综合国| 欧美日高清视频| 91片在线免费观看| 国产高清久久久| 精品亚洲国产成人av制服丝袜| 亚洲电影一级黄| 一区二区三区资源| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产亚洲精品中文字幕| 日韩免费视频线观看| 欧美日本精品一区二区三区| 欧洲生活片亚洲生活在线观看| 成人精品视频一区| 国产成a人无v码亚洲福利| 美女任你摸久久| 日本女优在线视频一区二区| 夜夜嗨av一区二区三区四季av| 日本一区二区三区免费乱视频 | 日韩亚洲国产中文字幕欧美| 91国内精品野花午夜精品| 91网上在线视频| 99re66热这里只有精品3直播 | 国产亚洲成aⅴ人片在线观看| 精品国产乱子伦一区| 精品理论电影在线观看| 制服丝袜亚洲播放| 日韩欧美aaaaaa| 欧美xxxxxxxxx| 26uuu国产日韩综合| 26uuu亚洲| 国产精品无人区| 国产精品久久久久久久岛一牛影视| 国产精品久久久久久久裸模| 国产精品电影院| 亚洲小说欧美激情另类| 日韩中文字幕一区二区三区| 蜜桃精品视频在线| 激情av综合网| av毛片久久久久**hd| 色94色欧美sute亚洲线路一ni| 欧美午夜理伦三级在线观看| 欧美一区二区福利视频| 久久久无码精品亚洲日韩按摩| 欧美激情综合五月色丁香小说| 国产精品久久久爽爽爽麻豆色哟哟| 中文字幕在线不卡国产视频| 亚洲国产婷婷综合在线精品| 久色婷婷小香蕉久久| 大尺度一区二区| 欧美日韩在线播放一区| 欧美成人官网二区| 亚洲三级在线看| 婷婷成人综合网| 成人亚洲一区二区一| 欧美色图在线观看| 久久嫩草精品久久久精品| 国产精品免费观看视频| 亚洲国产婷婷综合在线精品| 精品亚洲porn| 色综合中文字幕国产 | 国产丝袜在线精品| 亚洲福利视频三区| 国产99久久久久久免费看农村| 91高清在线观看| 国产婷婷色一区二区三区在线| 日韩国产精品大片| 不卡的av网站| 26uuu欧美日本| 亚洲国产成人va在线观看天堂| 国产经典欧美精品| 91精品国产手机| 亚洲自拍偷拍九九九| 国产精品一区专区|