localStorage存储大尺寸数据

use*_*547 5 javascript jquery click local-storage

我想使用localStorage存储大量数据(如800GB),根据http://arty.name/localstorage.html,我也使用Firefox,我改变了我的localStorage大小和缓存大小.所以尺寸不是问题.但是,我写了一些jquery,如下所示:

 $("a[href]").each(function(){
    $(this).click(function(event){
       localStorage.test += "somenewinformation";
      ...
Run Code Online (Sandbox Code Playgroud)

如果这个localStorage.test已经有大量的数据,如400GB,那么存储信息步骤将非常慢.当我点击一个链接时,jquery会等待我完成向localStorage.test附加的新信息,否则它将转到下一页,localStorage.test中的信息将全部丢失或localStorage.test将保持旧的值?我不明白的是,是否会生成一个新线程来执行此操作在后台存储,而在中间关闭浏览器是否会影响它.

对于凌乱的描述感到抱歉,并提前感谢!

小智 12

你不能!通常限制是5 MB.

某些浏览器(如Opera)允许您调整大小,但这完全取决于浏览器,并且是用户启动的操作,而不是可编程操作.

即使你可以,记住它localStorage只能存储字符串,所以其他任何东西都需要首先进行字符串化.这与一个键/值存储阵列一起,最终会遇到相当糟糕的性能.

如果您需要大容量存储,请查看File API.这适用于大文件(Blob),您可以将任何内容存储为Blob.

800 Gb是一个大尺寸,文件API只能像文件系统一样快速工作(充其量,因为它是沙盒,更可能有点慢,即不是纯文件系统).

有关File System API的更多信息(注意:自2014年4月起停止):http:
//www.w3.org/TR/file-system-api/

教程:http:
//www.html5rocks.com/en/tutorials/file/dndfiles/

Blob:https:
//developer.mozilla.org/en-US/docs/Web/API/Blob

更新随着Filesystem API的停止,基本上只剩下两个选项(除了将数据存储到服务器之外):

  • 索引数据库API又名Indexed DB(推荐)
  • Web SQL(已弃用但在Safari等浏览器中仍受支持)

这些最初也受到浏览器的限制.可以请求更大的报价,要求用户接受.

在此处查看有关此API的更多详细信息:http:
//www.w3.org/TR/IndexedDB/


Mat*_*ogt 6

LargeLocalStorage,它提供了一种跨浏览器的方式来本地存储大量数据.您可以存储二进制数据或字符串.

LargeLocalStorage使用Chrome上的FilesystemAPI,IE中的IndexedDB和Safari中的Firefox和WebSQL.

  • @Micah嗯,如果一个网站可以存储1GB +的数据,而我没有明确许可这样做,我会感到害怕. (4认同)
  • GitHub上的活动是5年前。有谁知道这是否仍然可靠? (4认同)