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的停止,基本上只剩下两个选项(除了将数据存储到服务器之外):
Indexed DB(推荐)这些最初也受到浏览器的限制.可以请求更大的报价,要求用户接受.
在此处查看有关此API的更多详细信息:http:
//www.w3.org/TR/IndexedDB/
有LargeLocalStorage,它提供了一种跨浏览器的方式来本地存储大量数据.您可以存储二进制数据或字符串.
LargeLocalStorage使用Chrome上的FilesystemAPI,IE中的IndexedDB和Safari中的Firefox和WebSQL.