簡體   English   中英

使用WebSQL的localForage可以使用Web IndexedDB

[英]localForage using WebSQL web IndexedDB available

我正在使用Ionic Framework構建Cordova應用程序。 我正在使用angular-localForage作為應用程序持久存儲的本地數據庫。

在開發過程中,我正在Windows 10上使用Google Chrome 45.0.2454.85 m測試我的應用程序,angular-localForage的版本為1.2.3,localForage的版本為1.2.4。

我可以設置和檢索數據沒問題。 要設置數據,我正在使用:

$localForage.setItem(myKey, myData).then(myCallbackFunction);

根據文檔 ,localForage應該使用IndexedDB(如果可用),並針對不可用的瀏覽器退回到WebSQL。 通過查看Chrome Developer工具中的參考資料,我可以看到它正在將數據存儲在WebSQL中。

如果將這段代碼放在控制器中,則會收到一條消息,指出IndexedDB可用:

if (!window.indexedDB) {
    window.alert("Your browser doesn't support a stable version of IndexedDB. Such and such feature will not be available.");
} else {
    window.alert("IndexedDB available.");
}

我的問題是,當我有IndexedDB可用時,為什么在Chrome中使用WebSQL?

這個問題實際上是偷偷摸摸的。

TLDR; 蘋果的UIWebView不支持indexedDB。 關閉Chrome的iOS模擬器以查看indexedDB正常工作。

發生的情況是,我假設您正在使用Chrome開發人員工具模擬iPhone。 那么,這實際上欺騙真的是有效的,因為localForage如果你將其配置為只使用索引資料現在會發出錯誤。

如果您想花點時間了解一下indexedDB,請關閉仿真,以便使用Chrome自己的用戶代理。 這樣就可以了。

資料來源:我不得不自己處理這個廢話。 這真是糟糕的開發人員體驗。 HAH。

我的猜測是將websql作為首選,因為它存在的時間比indexeddb api長,並且chrome早於indexeddb推送websql。 由於chrome仍然支持websql,因此它將websql放在indexeddb之前。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM