大多数浏览器为 localStorage 提供每个域 5MB 的存储限制。对于服务工作者是否有这样的内存限制/约束?
我知道网络工作者(服务工作者所基于的)没有这样的限制。但是 Web Workers 并不完全用于资产缓存,而是更多地用于处理(因此 CPU 是那里的主要问题)。
如果内存大小没有限制,设计糟糕的网站会导致浏览器崩溃吗?
原文由 Nachiketha 发布,翻译遵循 CC BY-SA 4.0 许可协议
大多数浏览器为 localStorage 提供每个域 5MB 的存储限制。对于服务工作者是否有这样的内存限制/约束?
我知道网络工作者(服务工作者所基于的)没有这样的限制。但是 Web Workers 并不完全用于资产缓存,而是更多地用于处理(因此 CPU 是那里的主要问题)。
如果内存大小没有限制,设计糟糕的网站会导致浏览器崩溃吗?
原文由 Nachiketha 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答936 阅读✓ 已解决
6 回答1.1k 阅读
3 回答1.3k 阅读✓ 已解决
2018 年 1 月 15 日更新
Storage API 的 StorageManager 接口正在成为所有与存储相关的 api 查询的标准。正如 @miguel-lattuada 所提到的, 估计 API 将提供对可用存储空间的网络应用程序所用存储空间的估计。另外,请注意 QuotaExceededError 异常,它可以帮助我们处理错误情况。
例如代码:
有关详细信息,请参阅以下 2 篇精彩文章:
2017 年 3 月 16 日(仅供参考/历史记录)
最近我看到了这篇文章: offline-cookbook ,其中指出如下:
你的 起源有一定的自由空间 来做它想做的事。该 可用空间在所有原始存储之间共享:LocalStorage、IndexedDB、文件系统,当然还有缓存。
您获得的数量没有规定,它会因设备和存储条件而异。您可以通过以下方式了解您获得了多少:
上述代码 可能不适用于所有浏览器。 (例如:在 chrome<48 中可能需要寻找 webkitPersistentStorage 等)
其他有用的信息/资源
在
Chrome and Opera
中:您的存储是每个来源(而不是每个 API)。两种存储机制都会存储数据,直到达到浏览器配额。应用程序可以通过配额管理 API(如上所述)检查它们使用了多少配额。Firefox
无限制,但存储50MB数据后会提示Mobile Safari
最大 50MBDesktop Safari
无限制(5MB后提示)IE10+
最大为 250MB,提示为 10MB目前,这些是为我的问题找到的最相关的文章/解决方案。如果有人知道更好的文章或规格,请分享。