我想使用localStorage来存储大量数据(例如800GB),根据http://arty.name/localstorage.html我也使用Firefox,我更改了localStorage大小以及缓存大小。所以尺寸不是问题。但是,我写了一些jquery,如下所示:
$("a[href]").each(function(){
$(this).click(function(event){
localStorage.test += "somenewinformation";
...
如果此localStorage.test已经有大量数据,如400GB,那么存储信息步骤将非常慢。当我点击一个链接时,jquery会等待我完成向localStorage.test附加的新信息,否则它将转到下一页,localStorage.test中的信息将全部丢失或localStorage.test将保持旧的值?我不明白的是,是否会生成一个新线程来执行此操作以在后台存储,而在中间关闭浏览器是否会影响它。
对于凌乱的描述感到抱歉,并提前致谢!
答案 0 :(得分:11)
你不能!通常限制为5 mb。
某些浏览器(如Opera)允许您调整大小,但这完全取决于浏览器,并且是用户启动的操作,而不是可编程操作。
即使你可以,请记住localStorage
只能存储字符串,所以其他任何东西都需要首先进行字符串化。与此相关的是一个键/值存储阵列,最终会遇到相当差的性能。
如果您需要大容量存储空间,请查看File API。这适用于大文件(Blob),您可以将任何内容存储为Blob。
800 Gb是一个很大的大小,文件API只能像文件系统一样快速运行(充其量,因为它是沙箱,更可能有点慢,即不是纯文件系统)。
有关文件系统API的更多信息(注意:自2014年4月起停止):
http://www.w3.org/TR/file-system-api/
教程:
http://www.html5rocks.com/en/tutorials/file/dndfiles/
斑点:
https://developer.mozilla.org/en-US/docs/Web/API/Blob
更新由于已停止使用Filesystem API,因此基本上只剩下两个选项(除了将数据存储到服务器之外):
Indexed DB
(推荐)此外,这些最初的浏览器尺寸有限。可以请求更大的报价,要求用户接受。
在此处查看有关此API的更多详细信息:
http://www.w3.org/TR/IndexedDB/
答案 1 :(得分:6)
LargeLocalStorage提供了跨浏览器方式在本地存储大量数据。您可以存储二进制数据或字符串。
LargeLocalStorage使用Chrome上的FilesystemAPI,IE和Firefox中的IndexedDB以及Safari中的WebSQL。