我需要爲iPad /平板電腦設備構建一個離線HTML5 Web應用程序,用戶可以從服務器下載數據集(數據表)並將其存儲在設備上。用戶可以從服務器斷開連接並在設備上本地查看/編輯數據。這適用於在沒有蜂窩覆蓋並需要收集/更新數據的偏遠地區工作的人員。當他們回到辦公室時,他們可以將數據同步/上傳回服務器。它需要成爲HTML5的原因是平臺不可知的,也就是說,只要它具有支持HTML5的現代網絡瀏覽器,就可以在iOS,Android等平臺上運行它。IndexedDB的包裝函數
現在我已經構建了使用HTML5本地存儲(用於數據)和HTML5脫機應用程序緩存(用於頁面/ css/js /圖像)的系統,並且它對小數據集(我可以查看,離線時編輯和保存,聯機時加載/同步)。現在我需要擴展到10,000行數據。它可以工作,但速度很慢,掛載瀏覽器的時間爲10秒,而在Intel四核8GB機器上加載。
所以,我一直在研究比本地存儲一些更好的選擇:
1)的WebSQL:將能夠使用SQL語言來查詢數據和執行連接等問題是它現在已經過時的,和不不再受到支持,所以我不想投入時間爲它建立一些東西。
2)IndexedDB:使用對象存儲(技術上,我已經使用本地存儲API存儲對象並使用JSON存儲)。由於它使用SQL lite後端的索引,因此可能會更快。有很多樣板代碼可以完成簡單的任務,比如創建數據庫,添加數據庫,讀取數據庫,迭代數據庫。我只想做一個簡單的查詢,如select(xyc, abc).where(abc = 123).limit(20)
,但是必須編寫大量JavaScript代碼才能完成。如何編寫自己的代碼來在表之間進行連接,以及任何地方的任何示例?
我發現一個jQuery plugin可能會使生活更簡單。有沒有其他的庫或其他庫可以緩解使用IndexedDB的痛苦?
非常感謝!
我相信WebSQL已經放棄了贊成IndexedDB ... –
注意WebSQL,Apple 5.0.1不再持久化WebSQL數據。換句話說,這會削弱你的應用的本地數據庫。 Phonegap有一個解決方法。 https://issues.apache.org/jira/browse/CB-330 – Wytze