亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

HTML5 WebStorage(HTML5本地存儲技術)

2020-10-23 18:29:18
字體:
來源:轉載
供稿:網友

WebStorage是HTML5中本地存儲的解決方案之一,在HTML5的WebStorage概念引入之前除去IE User Data、Flash Cookie、Google Gears等看名字就不靠譜的解決方案,瀏覽器兼容的本地存儲方案只有使用cookie。有同學可能會問,既然有了cookie本地存儲,為什么還要引入WebStorage的概念?

Cookie腫么了

cookie的缺陷是非常明顯的

1. 數據大小:作為存儲容器,cookie的大小限制在4KB左右這是非常坑爹的,尤其對于現在復雜的業務邏輯需求,4KB的容量除了存儲一些配置字段還簡單單值信息,對于絕大部分開發者來說真的不知指望什么了。
2. 安全性問題:由于在HTTP請求中的cookie是明文傳遞的(HTTPS不是),帶來的安全性問題還是很大的。
3. 網絡負擔:我們知道cookie會被附加在每個HTTP請求中,在HttpRequest 和HttpResponse的header中都是要被傳輸的,所以無形中增加了一些不必要的流量損失。

WebStorage

WebStorage是HTML新增的本地存儲解決方案之一,但并不是為了取代cookie而制定的標準,cookie作為HTTP協議的一部分用來處理客戶端和服務器通信是不可或缺的,session正是依賴于實現的客戶端狀態保持。WebStorage的意圖在于解決本來不應該cookie做,卻不得不用cookie的本地存儲。
WebStorage提供兩種類型的API:localStorage和sessionStorage,兩者的區別看名字就有大概了解,localStorage在本地永久性存儲數據,除非顯式將其刪除或清空,sessionStorage存儲的數據只在會話期間有效,關閉瀏覽器則自動刪除。兩個對象都有共同的API。

復制代碼 代碼如下:

interface Storage {
  readonly attribute unsigned long length;
  DOMString? key(unsigned long index);
  getter DOMString getItem(DOMString key);
  setter creator void setItem(DOMString key, DOMString value);
  deleter void removeItem(DOMString key);
  void clear();
};

1、length:唯一的屬性,只讀,用來獲取storage內的鍵值對數量。
2、key:根據index獲取storage的鍵名
3、getItem:根據key獲取storage內的對應value
4、setItem:為storage內添加鍵值對
5、removeItem:根據鍵名,刪除鍵值對
6、clear:清空storage對象

WebStorage如何使用

在實現了WebStorage的瀏覽器中,頁面有兩個全局的對象localStorage和sessionStorage

以localStorage為例,看一段簡單的操作代碼

復制代碼 代碼如下:

var ls=localStorage;
            console.log(ls.length);//0
            ls.setItem('name','Byron');
            ls.setItem('age','24');
            console.log(ls.length);//2

            //遍歷localStorage
            for(var i=0;i<ls.length;i++){
                /*
                    age : 24
                    name : Byron
                */
                var key=ls.key(i);
                console.log(key+' : '+ls.getItem(key));
            }

            ls.removeItem('age');

           
            for(var i=0;i<ls.length;i++){
                /*
                    name : Byron
                */
                var key=ls.key(i);
                console.log(key+' : '+ls.getItem(key));
            }
            ls.clear();//0
            console.log(ls.length);

事件

同時HTML5規定了一個storage事件,在WebStorage發生變化的時候觸發,可以用此監視不同頁面對storage的修改

復制代碼 代碼如下:

interface StorageEvent : Event {
  readonly attribute DOMString key;
  readonly attribute DOMString? oldValue;
  readonly attribute DOMString? newValue;
  readonly attribute DOMString url;
  readonly attribute Storage? storageArea;
};

1、key:鍵值對的鍵
2、oldValue:修改之前的value
3、newValue:修改之后的value
4、url:觸發改動的頁面url
5、StorageArea:發生改變的Storage

在index.php中定義

復制代碼 代碼如下:

<a href="test.php" target="_blank">Test</a>

復制代碼 代碼如下:

window.addEventListener('storage',function(e){
                console.log(e.key+' is changed form '+e.oldValue+' to '+e.newValue+' by '+e.url );
                console.log(e.storageArea ==localStorage);
            },false);

            localStorage.setItem('userName','Byron');

test.php

復制代碼 代碼如下:

localStorage.setItem('userName','Casper');

在index.php頁面點擊鏈接訪問test.php時可以看到index.php的控制臺輸出log:
userName is changed form Byron to Casper by http://localhost/test.php
true

為什么比cookie好

1. 從容量上講WebStorage一般瀏覽器提供5M的存儲空間,用來存儲視頻、圖片神馬的不夠,但對于絕大部分操作足矣
2.安全性上WebStorage并不作為HTTP header發送的瀏覽器,所以相對安全
3.從流量上講,因為WebStorage不傳送到服務器,所以不必要的流量可以節省,這樣對于高頻次訪問或者針對手機移動設備的網頁還是很不錯的。
這并不意味著WebStorage可以取代cookie,而是有了WebStorage后cookie能只做它應該做的事情了――作為客戶端與服務器交互的通道,保持客戶端狀態。所以僅僅作為本地存儲解決方案WebStorage是優于cookie的。

需要注意的地方

1.瀏覽器兼容性,這個幾乎是所有HTML5新特性中最容易實施的了,因為IE8+的瀏覽器都支持,在IE7、IE6中可以使用IE User Data實現。

 2. 由于localStorage和sessionStorage都是對象,所以我餓每年也可以通過”.key”或”[key]”的方式獲取、修改鍵值對,但不推薦這么做 。
復制代碼 代碼如下:

localStorage.userName='Frank';
console.log(localStorage['userName']);

3.雖然localStorage存儲在本地,但不同的瀏覽器存儲存儲數據是獨立的,所以在Chrome上存儲的localStorage在FireFox上是獲取不到的。
4. localStorage和sessionStorage只能存儲字符串類型,對于復雜的對象可以使用ECMAScript提供的JSON對象的stringify和parse來處理,低版本IE可以使用json2.js
5.除了控制臺,Chrome還為本地存儲提供了非常直觀的顯示方式,調試的時候很方便

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男女自偷自拍图片另类| 性日韩欧美在线视频| 中文字幕在线看视频国产欧美在线看完整| 国产一区二区动漫| 日韩欧美中文免费| 岛国精品视频在线播放| 国产91精品久久久久| 国产精品日韩在线播放| 欧美大胆a视频| 亚洲精品美女久久久久| 精品国产依人香蕉在线精品| 91久久精品美女高潮| 欧美日韩国产精品一区二区三区四区| 亚洲精品电影网| 九九热r在线视频精品| 日本久久久久久久| 亚洲奶大毛多的老太婆| 欧美日韩午夜激情| 久久亚洲精品毛片| 成人国产精品一区二区| 激情懂色av一区av二区av| 成人久久久久久久| 色综合老司机第九色激情| 国产成人精品一区二区三区| 美日韩在线视频| 91影视免费在线观看| 亚洲一区美女视频在线观看免费| 国内精品久久久久伊人av| 成人免费网视频| 国产精品一区久久久| 日韩精品一区二区三区第95| 国产成人短视频| 精品国产91久久久久久老师| 国产精品一区二区性色av| 中文字幕在线日韩| 欧美裸体xxxx| 97精品视频在线| 精品欧美aⅴ在线网站| 日韩欧美在线视频日韩欧美在线视频| 亚洲91精品在线| 日韩av免费在线观看| 91免费电影网站| 一区二区三区久久精品| 国产精品国模在线| 日韩欧美极品在线观看| 亚洲欧美国产日韩中文字幕| 久久免费精品视频| 精品国产一区二区三区久久久狼| 91精品国产综合久久香蕉| 国产精品国产三级国产aⅴ9色| 精品成人av一区| 精品高清一区二区三区| 亚洲欧美日韩国产成人| 久久亚洲精品一区| 日韩免费在线看| 久久亚洲一区二区三区四区五区高| 亚洲综合精品伊人久久| 亚洲国产精品成人va在线观看| 国产精品久久久久久久久久免费| 久久最新资源网| 91久久精品美女| 久热精品视频在线观看| 欧美激情一区二区三级高清视频| 中文字幕无线精品亚洲乱码一区| 日韩国产精品一区| 亚洲色图美腿丝袜| 日韩国产高清视频在线| 国产日韩换脸av一区在线观看| 精品久久久久久| 久久久亚洲国产| 亚洲一级黄色片| 国产91热爆ts人妖在线| 在线观看日韩av| 一区二区在线免费视频| 日韩中文字幕视频| 丝袜亚洲另类欧美重口| 午夜精品在线观看| 国产欧美日韩亚洲精品| 亚洲国产天堂网精品网站| 欧美尤物巨大精品爽| 亚洲精品美女在线观看播放| 成人在线中文字幕| 日韩av电影中文字幕| 91精品免费视频| 国产精品久久久久影院日本| 亚洲精品一二区| 成人在线视频网站| 成人欧美在线视频| 欧美自拍大量在线观看| 亚洲最大中文字幕| 97超碰色婷婷| 成人免费网站在线观看| 91九色蝌蚪国产| 992tv成人免费影院| 国产在线观看91精品一区| 久久精品成人欧美大片古装| 人体精品一二三区| 日本亚洲欧洲色| 亚洲精品99久久久久中文字幕| 欧美精品在线免费播放| 久久精品在线播放| 亚洲国产一区自拍| 国产精品日韩一区| 欧美日韩精品在线视频| 午夜伦理精品一区| 欧美成人一二三| 国产精品pans私拍| 亚洲免费视频在线观看| 欧美孕妇孕交黑巨大网站| 精品久久久久国产| 亚洲国产精品成人一区二区| 亚州欧美日韩中文视频| 91久久久久久久| 国产亚洲精品久久久| 国产日本欧美一区| 欧美电影在线免费观看网站| 亚洲成av人片在线观看香蕉| 亚洲欧美国产一本综合首页| 欧美片一区二区三区| 国产精品视频一区国模私拍| 国产精品一区专区欧美日韩| 国产网站欧美日韩免费精品在线观看| 亚洲中国色老太| 国产91色在线播放| 中文字幕亚洲综合| 一本色道久久88亚洲综合88| 91九色在线视频| 操日韩av在线电影| 69av视频在线播放| 亚洲电影免费观看高清完整版在线观看| 国产精品69久久| 日韩精品在线观看一区二区| 日韩精品视频在线免费观看| 久久国产精品首页| 日韩中文字幕精品| 色综合久久中文字幕综合网小说| 国产欧美日韩亚洲精品| 91精品国产高清自在线看超| 日韩毛片在线看| 日本成人精品在线| 这里只有精品视频| 欧美日韩福利视频| 国产精品欧美亚洲777777| 亚洲性生活视频在线观看| 国产精品18久久久久久麻辣| 成人av在线网址| 国产中文字幕日韩| 国产999精品视频| 亚洲国产成人久久综合| 97超级碰碰碰久久久| 91精品在线看| 日韩欧美国产成人| 26uuu久久噜噜噜噜| 日韩一区在线视频| 亚洲久久久久久久久久久| 精品国产31久久久久久| 91亚洲国产精品| 久久久极品av| 亚洲老司机av| 55夜色66夜色国产精品视频| 午夜精品99久久免费| 亚洲欧美制服丝袜| 精品丝袜一区二区三区| 国产欧美日韩专区发布|