前端的數據存儲方式,你除了用過 cookie、localStorage 和 sessionStorage 外,還有用過其它的存儲方式麼?接下來小編帶你一起過一下,目前比較流行的一些開源的前端存儲方案。
AlaSQL
AlaSQL 是一個用於 JavaScript 的開源的 SQL 數據庫,能夠處理傳統關係表和嵌套的 JSON 數據 (NoSQL)。此外它聚焦於關係數據的查詢速度和數據源的靈活性,能在瀏覽器、Node.js 和 Cordova 的環境中使用。
該庫的設計目的是:
支持對重的客戶端 BI 和 ERP 應用程序,內存中 SQL 數據進行快速處理。
簡單的 ETL (Extract-Transform-Load) 即數據倉庫技術,支持對多種數據格式的數據執行導入、操作、導出。
支持所有主流的瀏覽器、Node.js 應用和移動端應用程序。
目前 Github 統計信息:
Dexie.js
Dexie.js 是 IndexedDB 的包裝庫,它提供了一套經過精心設計的 API,強大的錯誤處理,較強的可擴展性,此外它能夠跟蹤數據變化,支持 KeyRange (搜索不區分大小寫,可設置匹方式和 OR 操作)。
Dexie.js 主要為了解決原生 IndexedDB API 中存在的三個主要問題:
異常錯誤處理。
較弱的查詢功能。
代碼複雜性。
目前 Github 統計信息:
LokiJS
LokiJS 是一個使用 JavaScript 實現,面向文檔的數據庫。其目的是將 JavaScript 對象以 NoSQL 方式存儲為文檔,並提供類似的數據檢索機制。它可以運行在 Cordova/PhoneGap、node-webkit、nativescript 和瀏覽器的環境中。
LokiJS 適用於以下場景:
客戶端內存數據庫,如會話信息存儲。
注重性能的 Cordova/PhoneGap 應用程序。
node-webkit 桌面應用。
nativescript 移動應用。
目前 Github 統計信息:
NeDB
NeDB 是一個 JavaScript 數據庫,能夠運行在 Node.js、nw.js、Electron 和瀏覽器環境。它是使用純的 JavaScript 實現,不依賴其它庫,提供的 API 是 MongoDB API 的子集,重要的是它的速度非常快:
插入:10,680 ops/s。
查找:43,290 ops/s。
更新:8,000 ops/s。
刪除:11,750 ops/s。
ops (operation per second) 即表示每秒操作的次數。
目前 Github 統計信息:
PouchDB
PouchDB 是受 Apache CouchDB 啟發為 Web 設計的一款佔用空間少的數據庫。PouchDB 項目的目標是幫助開發者構建線上和線下都能很好地使用的 Web 應用程序,在應用程序離線的時候,可以將用戶數據保存在本地,當恢復在線狀態時,通過 CouchDB 和其它相兼容的服務器來同步這些數據。
PouchDB 的主要特點:
輕量級,開啟 gzipped 後,僅 46KB。
跨瀏覽器,支持 Firefox, Chrome, Opera, Safari, IE。
支持 Node.js 和 Cordova
目前 Github 統計信息:
localForage
localForage 是一個快速簡單的 JavaScript 存儲庫。 它通過使用類似於 localStorage 的簡單 API 來使用異步存儲 (IndexedDB 或 WebSQL) ,進而改善您的 Web 應用程序的離線體驗。
對於不支持 IndexedDB 或 WebSQL 的瀏覽器,localForage 會使用 localStorage 進行數據存儲。
localForage 主要支持的平臺:
IE 10 (IE 8+ 使用 localStorage)
Opera 15 (Opera 10.5+ 使用 localStorage)
Safari 3.1 (包括 Mobile Safari)
Chrome 23、Chrome for Android 32
Phonegap/Apache Cordova 1.2.0
目前 Github 統計信息:
篇幅有限僅介紹了部分方案,此外還有 lowdb (Local JSON Database)、Lovefield (Relational Database) 和 RxDB (Reactive Database) 等,如果你有更好的存儲方案,歡迎給小編留言。