一千萬個為什麽

搜索

所有HTML5存儲系統是否一起工作?

雖然有很多關於html5的好東西,但我沒有得到的一件事是redondant存儲機制,首先是localstorage和sessionstorage,它們是鍵值存儲,一個是app的一個實例(“one tab”) ),另一個適用於該應用程序的所有實例,以便它們可以共享數據。當你關閉瀏覽器並且有一個有限的大小(通常是5MB)時,兩者都會被保存,這很好,如果我們停在那裏,一切都會很好。

但是有一個“Web SQL數據庫”,它具有與localstorage相同的安全系統,相同的大小限制,除了它的工作原理之外的所有內容都像/ sqlite一樣,具有表和sql語法以及所有這些。

糟糕的是,他們根本不會處理相同的數據!這不是兩種訪問數據的方式,這對於每個html 5應用程序來說真的是兩個存儲空間(默認情況下不是創建的,但是你仍然看到了我的觀點)。

我想知道的是,這兩種機制同時存在的原因是什麽?或者他們只是看看sql和nosql運動來挑選最好的然後去“擰它讓我們加兩個!” ?為什麽不在web sql db中實現本地/會話存儲作為表?

最佳答案

我認為本地存儲是對cookie應該首先進行的方式的正確改寫。它具有非常簡單的api和低采用率。

Web SQL非常重要,只是為了保存一個簡單的值,因此它們具有非常不同的用例,這將是一個嚴重的痛苦。 localstorage實際上是使用SQLite在WebKit中實現的,但是沒有通過WebSQL公開。

會話存儲無法在數據庫內輕松實現,因為它實際上在全局範圍內,並且您不希望數據對其他選項卡可見。因為它是瞬態數據,所以通常不想存儲批次,因此不需要事務和查詢。

See also: http://www.pubbs.net/200904/webkit/28373-webkit-dev-need-help-making-windowlocalstorage-span-processes.html

轉載註明原文: 所有HTML5存儲系統是否一起工作?