天天看點

HTML5開發——輕量級JSON存儲解決方案Lawnchair.js

Lawnchair是一個輕量級的移動應用程式資料持久化存儲方案,同時也是用戶端JSON文檔存儲方法,優點是短小,文法簡潔,擴充性比較好。

現在做HTML5移動應用除了LocalStorage的相容性比較好之外,SQL web database以及IndexedDB都處在僵局中,雖然有人叫嚣着“我們應該幹掉 LocalStorage API”,但那是後話,現在也沒得選擇。

應用示例【應用的是dom Storage】:

HTML5開發——輕量級JSON存儲解決方案Lawnchair.js
HTML5開發——輕量級JSON存儲解決方案Lawnchair.js

或者:

HTML5開發——輕量級JSON存儲解決方案Lawnchair.js
HTML5開發——輕量級JSON存儲解決方案Lawnchair.js

因為使用了安全的構造函數,是以兩種方法的效果一緻。回調函數的第一個參數與傳回的的store是同一個對象,在回調函數内部也可以用this代替。

HTML5開發——輕量級JSON存儲解決方案Lawnchair.js

初始化:

option預設為空對象,有三個可選屬性:

callback的第一個參數是目前對象,在回調函數内部也可以用this代替。

API:

參數中必須有一個函數作為回調函數,哪怕是空。

HTML5開發——輕量級JSON存儲解決方案Lawnchair.js
HTML5開發——輕量級JSON存儲解決方案Lawnchair.js

建立Lawnchair對象的時候,如果傳入的option參數含有name屬性,那麼會建立一個類似table._index_的數組用來儲存索引值。

儲存形式為對象,如果傳入的對象有key屬性,那麼key會作為索引值儲存,如果沒有key屬性,則自動生成一個key值,然後儲存在table._index_中,上面的例子的操作結果如下圖:

HTML5開發——輕量級JSON存儲解決方案Lawnchair.js

上面的例子改用batch方法就是:

HTML5開發——輕量級JSON存儲解決方案Lawnchair.js
HTML5開發——輕量級JSON存儲解決方案Lawnchair.js

lawnchair.js的核心很小,然後有完善的擴充和插件機制,可以按需加載。自己編寫也比較友善,隻需要在自己的代碼中實作adapter valid init keys save batch get exists all remove nuke方法即可。