gpt4 book ai didi

javascript - 如何快速将 JavaScript localStorage 填充到最大容量?

转载 作者:行者123 更新时间:2023-11-29 10:31:08 27 4
gpt4 key购买 nike

我有一个使用 localStorage 的应用程序频繁地。有时我达到 localStorage 的最大容量,我会捕获异常并清理一些旧数据。

try {
localStorage.setItem(myKey, myData);
}catch(error){
// empty some old data in localStorage and re-insert myKey and myData
}

一切都很好,只是我无法轻易测试它。我正在寻找一种方法将我的 localStorage 快速填充到其最大容量,以便我可以在不同的条件和浏览器中测试代码。

最佳答案

感谢 @Daniel H 的回答让我知道了如何快速填充 localStorage。最后我找到了这个解决方案:

try{
var i;
for (i = 1 ; i <= 10000; i ++) {
localStorage.setItem('test', new Array(i * 100000).join('a'));
}
}catch(error){
console.log("test stopped at i: " + i);
try{
var j;
for (j = 1 ; j <= 100; j++) {
localStorage.setItem('test2', new Array(j * 1000).join('a'));
}
}catch(error){
console.log("test2 stopped at j: " + j);
try{
var k;
for (k = 1 ; k <= 1000; k++) {
localStorage.setItem('test3', new Array(k).join('a'));
}
}catch(error){
console.log("test3 stopped at k: " + k);
console.log("total storage: " + (i * 100000 + j * 1000 + k));
}
}
}

首先,我将 localStorage 填充为 100000 个字符的 block ,并将其作为“test”存储在 localStorage 中。在我遇到exceeded the quota 异常后,我以 1000 个字符的 block 填充 localStorage,直到我再次遇到 exceeded the quota 异常。最后我逐个字符地填充 localStorage,直到我第三次得到异常。

现在 localStorage 已经完全满了,我们可以像这样再添加 1 个字符来测试它:

localStorage.setItem("a","a")

抛出exceeded the quota异常。

P.S:我相信这段代码可以进一步优化。非常感谢任何优化。

关于javascript - 如何快速将 JavaScript localStorage 填充到最大容量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45760110/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com