首頁 web前端 H5教程 HTML5-Web Storage APIs的簡述

HTML5-Web Storage APIs的簡述

Apr 01, 2017 am 11:30 AM

1.概述
  Web Storage是一種在客戶端儲存資料的方法。比起Cookie,Web Storage更加安全,能夠儲存更多物件,而不僅僅是字串;Web Storage能夠存儲更大的數據,而不是像只能夠儲存幾KB數據的Cookie;Web Storage還可以減少數據在客戶端與伺服器間的轉換,減少頻寬。
  Web Storage的核心是是window物件的兩個子物件sessionStorage和localStorage。資料以鍵值對的形式透過這兩個物件存儲,這兩個物件都實作了storage介面,擁有相同名稱的屬性和方法,用法也相同。不同之處是二者的儲存時間和共享範圍。
  sessionStorage資料儲存時間依賴於儲存它的瀏覽器視窗或選項卡存在的時間,共享範圍也是只在產生它的瀏覽器視窗或選項卡內。
  localStorage資料儲存時間要超過瀏覽器的開啟時間,除非透過手動或程式碼刪除,其共享範圍是同源(origin)網站的頁間。
  許多瀏覽器不支援sessionStorage存取本機檔案系統,因此要透過網路伺服器使用。
  Web Storage的規範允許儲存任何類型數據,但在各瀏覽器實作上多數值允許儲存字串文字數據,但可以使用Web Storage結合JSON技術儲存非文字資料。
  更進階的資料儲存方法是Web SQL Database,用於基於索引的資料庫存儲,並具有SQL查詢語言SQLite。 Web SQL Database目前僅被Safari,Chrome和Opera支援。最終的規範很可能不採用這種方式。另外一種方法是IndexedDB,僅FireFox 4以上版本支援。

2.瀏覽器支援偵測
 

 function checkStorageSupport() { 
  //sessionStorage 
  
if
 (window.sessionStorage) { 
    alert('This browser supports sessionStorage'); 
  } 
else
 { 
    alert('This browser does NOT support sessionStorage'); 
  } 
  //localStorage 
  if (window.localStorage) { 
    alert('This browser supports localStorage'); 
  } else { 
    alert('This browser does NOT support localStorage'); 
  } 
}
登入後複製

3.Storage介面

  interface Storage { 
     //同源键值对的数目
     readonly attribute unsigned long length; 
     //通过索引获取键,索引从0开始
     getter DOM
String
 
key
(in unsigned long index); 
     //通过键获取值,键若不存在,值将返回
null
     getter any getItem(in DOMString key); 
     //存储键值对,若已存在同名键,则值将被覆盖。若用户关闭了浏览器存储或是已超     //过允许存储的最大值,都将产生QUOTA_EXCEEDED_ERR错误。
     
set
ter creator void setItem(in DOMString key, in any data); 
     //通过键删除值,不存在则什么也不做
     
delete
r void removeItem(in DOMString key); 
     //删除storage中所有键值对,若为空则什么也不做
     void 
clear
(); 
   };
登入後複製

4.讀取與儲存資料

  //---------------方式一--------------
   //存储数据
   window.sessionStorage.setItem(‘myFirstKey’, ‘myFirstValue’); 
   //读取数据
   alert(window.sessionStorage.getItem(‘myFirstKey’)); 
   //---------------方式二--------------
   //存储数据
   window.sessionStorage.myFirstKey = ‘myFirstValue’;
   //读取数据
   alert(window.sessionStorage.myFirstKey); 
   //---------------方式三--------------
   var varKey = sessionStorage.key(index);
   window.sessionStorage[varKey] = 
new
Value;
登入後複製

5.儲存事件
  Web Storage與其它頁面、瀏覽器視窗或標籤、Web Worker間的通訊可以透過儲存事件來進行。同源的物件都可以監聽storage事件。新增storage事件監聽方法如下:

  window.addEventListener("storage", displayStorageEvent, true);
登入後複製

6.StorageEvent介面
  storage事件物件實作了StorageEvent接口,該介面的宣告如下:

 interface StorageEvent : Event { 
      readonly attribute DOMString key; 
      readonly attribute any oldValue; 
      readonly attribute any newValue; 
      readonly attribute DOMString url; 
      //该方法提供了一个对发生storage事件对象的
引用
,这个对象可以是
      //sessionStorage或localStorage
      readonly attribute Storage storageArea;
   };
登入後複製

6.處理最大配額
  多數瀏覽器所允許的Web Storage不超過5MB,為了防止儲存資料時產生超出配額的限制,可以使用擷取QUOTA_EXCEEDED_ERR異常的方法來處理,例如:

try
   {
      sessionStorage["name"] = "Tabatha";
   }
   catch (
exception
)
   {
      if (exception == QUOTA_EXCEEDED_ERR)
      { 
         // we should tell the user their quota has been exceeded. 
      }
   }
登入後複製

以上是HTML5-Web Storage APIs的簡述的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

HTML onclick 按鈕指南。這裡我們分別討論它們的介紹、工作原理、範例以及各個事件中的onclick事件。

See all articles