2008年12月18日

Storage

物件 | 特徵 | 方法 | 事件

DOM Storage 是設計取代 cookie,提供多量,安全,好用的資訊存儲方法。目標是達成互動式應用。例如 IE 的 cookie 最多可有 4K 位元組,而每一個 Storage 區可有 10 mega 位元組。

IE8, Firefox, Safari 有支援此功能。下面在不同瀏覽器測試,結果並不統一。讀者可以視情況使用。

這三個物件是全域物件,使用 window.sessionStorage 或 sessionStorage 都可以。

Storage

此為標準的介面(interface),用於 globalStorage, localStorage, sessionStorage 物件。可以使用 prototype 增加所有 Storage 物件的成員。

  • 上例,Firefox 成功;IE6, Safari, Chrome 失敗。
  • 在 Firefox 可以用 prototype 增加所有 Storage 物件的成員,但是只限當下網頁使用,跳到其它頁就讀不到了。
globalStorage

使用此存放的資料可以在不同視窗讀寫,但是限同一網站的任一網頁;視窗關閉後,資料依然可以保留在客戶電腦。限 Firefox 使用。其語法是:

globalStorage['網址'].特徵名 = 值

網址例如 ant4js.blogspot.com。值必須是字串,所有的數值都必須轉換成字串。

  • 上例,Firefox 成功的在其它網頁讀到儲存資料;IE6, Safari, Chrome 失敗。
localStorage

使用此存放的資料可以在不同視窗讀寫,但是限同一網站的任一網頁;視窗關閉後,資料依然可以保留在客戶電腦。此為標準組織建議的物件,Firefox 無此項,其使用 globalStorage。其語法是:

localStorage.特徵名 = 值

值必須是字串,所有的數值都必須轉換成字串。

  • 上例,IE6, Firefox, Safari, Chrome 都失敗。
sessionStorage

此物件是要改善資訊片(cookie)會被多個視窗讀取的情形。例如用戶對同一網站開了兩三個瀏覽器視窗,此時用戶在其中一個視窗運作,產生的資訊片,其它視窗都可以讀取;這有可能導致用戶在購物網站重複購買相同的商品而未察覺。使用 sessionStorage 存放的資訊,只有同一視窗中同一網站的任一網頁可以讀取;視窗關閉時,存放的資料會被刪去。其語法是:

sessionStorage.特徵名 = 值

值必須是字串,所有的數值都必須轉換成字串。

  • 上例,Firefox 成功的在其它網頁讀到儲存資料;IE6, Safari, Chrome 失敗。
  • 在 Firefox 測試時發現,子視窗可以讀到父視窗的 sessionStorage 資料。

©2008-2009 by ant2legs, All Rights Reserved. ant2legs 擁有其製作的文章,圖片與程式的著作權,所有權利保留。