2016-08-14 135 views
0

隨着(不建議使用,Chrome專有)navigator.webkitPersistentStorage.requestQuota()方法我可以請求Chrome中的持久存儲。webkitPersistentStorage.requestQuota()適用於IndexedDB嗎?

這是否也適用於IndexedDB數據或僅適用於文件系統API?

背景:爲了保存重要的數據,我想讓IndexedDB真正具有持久性,避免任何瀏覽器垃圾收集/驅逐(除了手動用戶刪除)。

回答

0

Chrome舊的PersistentStorage機制僅適用於FileSystem API。其目的是將其應用於所有存儲類型,但該提案失敗並且未被其他瀏覽器採用。 (就像文件系統API本身)

...

有在新的提議:https://storage.spec.whatwg.org/

...因此腳本可以調用navigator.storage.persist()請求 「老大難」 的權限。如果被授予,它會使整個原始存儲(索引DB,高速緩存API,本地存儲等)持久化,即只能通過明確的用戶操作清除。 Chrome目前(大約在2016年8月)正在試驗這個建議 - 如果你想嘗試一下,請參閱:https://developers.google.com/web/updates/2016/06/persistent-storage?hl=en

+0

是的,但AFAIK目前的新功能(Chrome 52)處於測試階段,通常不會*一般*可用(例如,一個免費的JS庫不能使用它)。那麼,目前沒有辦法安全地保存數據! –

+0

正確。大多數瀏覽器都是如此;存儲是「盡力而爲」的,但是當空間緊張時,他們將驅逐數據(基於各種啓發式算法,例如最近最少使用的原點),而不是填充設備並開始失敗的操作。 –