在銳3圖庫:瑞安Grove的存儲Lite的跨瀏覽器存儲庫

2010年2月23日在上午07時46分由Ryan韋|在發展銳3圖庫 | 6評論

瑞安格羅夫,前端工程師在雅虎搜索 瑞安格羅夫@ yaypie在Twitter)是一個Web開發者和鑑賞家餡餅(原為雅虎搜索 ,而後者的樂趣)。 他曾協助的功能,如搜索,搜索墊,以及最近的搜索重新設計,目前由雅虎搜索幫助遷移到銳銳2 3。

隨著越來越多的瀏覽器增加支持HTML5的網絡存儲API ,未來正在尋找良好的網絡應用程序,需要持久的客戶端數據存儲。 不幸的是,保持與舊瀏覽器的兼容性還不支持網絡存儲可以是一個挑戰,以及丟棄舊的瀏覽器支持幾乎是不接受的辦法。

存儲建興銳3圖庫模塊 ,它是為使用雅虎 搜索 ,旨在解決這個問題,並提供一個簡單,輕量級的API的封裝了多種持久性客戶端的存儲機制與外部插件依賴關係沒有任何形式的(甚至不是閃光)。 它重約 2.6KB在之前gzip壓縮後縮小,類似於 HTML5的localStorage API和作品在IE6 +,火狐2 +,Safari瀏覽器3.1 +,4 +瀏覽器和Opera 10.5 +。

除了 ​​是基於銳3,儲存建興不同於現有銳2存儲工具在幾個方面。 銳2存儲是一個強大的和可擴展的實現,保持更忠實於HTML5的localStorage和sessionStorage的API(例如,它提供了一個變化的事件和key()方法,該方法存儲Lite不)。 銳 2存儲也回落存儲在Flash或Gears為舊版瀏覽器,它可以在某些情況下提供更好的持久性和更多的存儲容量。 建興存儲行業擴展性和基於插件的回退重量更輕,性能更好,特別著重於模擬只localStorage。

點擊進入看到的例子在行動。

來看看這個例子持續記事本 ,看看存儲建興在行動上,或閱讀以下非交互式代碼樣本快速瀏覽的API。

首先,包括腳本:

 <腳本鋼骨混凝土=“htt​​p://yui.yahooapis.com/combo?3.0.0/build/yui/yui-min.js& 
gallery-2010.02.22-22/build/gallery-storage-lite/gallery-storage-lite-min.js“> </腳本>

在您的實現代碼,監聽storage-lite:ready事件,該事件被觸發時的存儲機制是準備使用。 存儲機制後,已準備就緒,你可以使用API​​:

銳()。使用('畫廊存儲建興',函數(Y){

     / /對於完全兼容IE瀏覽器和Safari 3.x的6-7,監聽
     / /存儲建興:ready事件之前,存儲調用。 如果你不
     / /針對這些瀏覽器,你可以放心地忽略此步驟。
     Y.StorageLite.on('存儲建興:做好準備',函數(){

         / /存儲一個項目,通過一鍵和一個值(包括字符串)setItem()。
         Y.StorageLite.setItem('小貓','蓬鬆可愛的');

         / /如果設置可選的第三個參數為 true,則可以使用任何
         / /序列化對​​象的值,它會自動儲存
         / /作為一個 JSON字符串。
         Y.StorageLite.setItem('餡餅',['蘋果','南瓜','核桃'],真實);

         / /要檢索的項目,通過關鍵的GetItem()。
         Y.StorageLite.getItem('小貓'); / / =>“蓬鬆可愛'

         / /要檢索並自動解析JSON值,設置可選
         / /第二個參數為 true。
         Y.StorageLite.getItem('餡餅',真); / /“=> ['蘋果','南瓜','核桃']

         / /長度()方法返回一個數的多少項目目前
         / /存儲。
         Y.StorageLite.length(); / / =“2

         / /要刪除單個項目,通過其關鍵 RemoveItem將()。
         Y.StorageLite.removeItem('小貓');

         / /要刪除的所有項目在存儲,​​調用 clear()。
         Y.StorageLite.clear();

     });

 });

數據存儲使用存儲在Lite是堅持綜合瀏覽量和瀏覽器重新啟動*,並且可訪問同一個域中只能從它被存儲在其中。 在幕後,倉儲 Lite使用以下存儲機制,自動選擇最佳之一的支持:

  • 火狐3.5 +,鉻4 +,4 +的Safari,IE8的,歌劇10.5 +: HTML5的localStorage -這些現代瀏覽器都支持核心localStorage功能定義在HTML5的草案。
  • 火狐2.x和3.0.x的壁虎globalStorage的 ,早期的API類似HTML5的localStorage。
  • Safari瀏覽器3.1和3.2: HTML5數據庫存儲 ,因為Safari 3.1和3.2不支持HTML5 localStorage。
  • 在IE6,IE7的用戶數據的持久性 ,一個很少使用的IE瀏覽器的功能相關聯的字符串數據元素在網頁上,並堅持它之間的綜合瀏覽量。

有關詳細信息,請參閱存儲建興GitHub的項目API參考

*警告:IE6和IE7中堅持綜合瀏覽量之間的數據,但不能跨瀏覽器重新啟動。

共享和擴展: 書籤和書籤 | Digg它! | reddit!

6評論

  1. 這是偉大的! 還有一個檢查了我的YUI3需求! 或者說,多一個 YUI2我不加載工具一起YUI3;)

    感謝這個偉大的貢獻!

    評論由雅各布福格 - 2010年3月5日

  2. [...]欣奇的窗體模塊(提交小時後廊開),瑞安Grove的優秀存儲和歷史模塊,Ilyan佩伊切夫的尤伯杯流行手風琴,朱利安孔特的[...]

    通告由2010年銳3圖庫大賽-贏取門票JSConf 2010 »雅虎用戶界面博客(YUIBlog) - 2010年3月5日

  3. 其實我只是寫了一個新的JS文件來啟用跨瀏覽器localStorage ...和sessionStorage! 這基本上是相同的處理 userStorage在IE,但使用的窗口名稱來識別瀏覽器窗口。 檢查出來,讓我知道你們的想法!

    http://blog.sankhomallik.com/2010/06/16/ustore-js-cross-browser-local-and-session-storage/

    評論由Sankho - 2010年6月22日

  4. [...]韋登康比德。 嗯奧赫 älteren Browsern格beizubringen,gibt胚胎幹 Bibliotheken魏銳存儲訂貨銳存儲建興。 模具Daten韋登每個域abgelegt,胚胎幹韋登有限公司5MB的Speicherplatz [...]

    通告由Webkrauts » HTML5的ALS的Geschenkverpackung馮Daten - 2010年12月5日

  5. [...]瀏覽器的支持實際上是非常好:鉻 4 +;火狐3.5 +; IE8的+,歌劇 10.5 +;的Safari 4 +;加上iPhone 2.0 +;和Android 2.0 +。 這應該包括大多數你的需求。 當然,你應該檢查支持的第一個(或使用包裝庫存儲工具或類似銳銳存儲建興)。 [...]

    通告由RegexHacks » HTML5的包裝物很好地與本地存儲 -二〇一〇年十二月十五日

  6. [...]瀏覽器的支持實際上是非常好:鉻 4 +;火狐3.5 +; IE8的+,歌劇 10.5 +;的Safari 4 +;加上iPhone 2.0 +;和Android 2.0 +。 這應該包括大多數你的需求。 當然,你應該檢查支持的第一個(或使用包裝庫存儲工具或類似銳銳存儲建興)。 [...]

    通告的包裝物很好地與HTML5的本地存儲|網頁設計飼料 - 2011年2月4日

抱歉,評論形式是封閉在這個時候。

主辦單位雅虎

版權所有© 2006-2011雅虎公司保留所有權利。 隱私權政策 - 服務條款

本站由WordPress的關於雅虎 虛擬主機