2013-03-28 47 views
2

當LocalStorage達到域的最大存儲限制時會發生什麼?當LocalStorage達到域的最大存儲限制時會發生什麼?

  • 碰到硬限制,默默地停止接受新的價值觀
  • 碰到硬限制,並拋出一個錯誤
  • 打軟限制和瀏覽器使用剪枝策略,以騰出空間給新的價值觀

有一個類似的StackOverflow問題:What is the max size of localStorage values?,回答的瀏覽器的存儲限制是什麼的問題,但這個問題不會提問或回答時達到限制時到底發生了什麼。什麼是限制對我來說無關緊要,對我來說重要的是限制被觸及時發生的情況,以及如果我需要照顧修剪客戶端代碼中的緩存,或者瀏覽器會執行它爲我自動。

+0

我認爲它是特定於實現的,一般指導原則是「提示用戶」 –

回答

3

陳述的Spec

,如果它沒有設置新值,則該方法必須拋出 QuotaExceededError例外。 (如果設置,例如,用戶 禁用了存儲的網站,或者如果已超出配額可能會失敗。)

所以理論上你應該總是使用try-catch clause防止錯誤。

for (var i = 0;i<200000;i++){ 
    test += "sdfghyxcvbn123kjhajsdfkhuwehfkjs,dnfhkweufhkjsdf"; 
} 
try{ 
    var result = window.localStorage.setItem("test",test); 
} catch(e) { 
    console.log(e.message); 
} 
相關問題