对于当前的File API,访问以前添加的文件的唯一方法是将整个文件对象存储在本地存储中。当添加多个文件时,这会迅速吞噬浏览器内存。
我想知道是否有办法只在本地存储中存储某种类型的文件引用,并能够通过其引用访问该文件。
我尝试使用URL.createObjectURL
函数生成文件的URL,但该URL与文档绑定,并在重新加载页面时过期。有替代方案吗?
答案 0 :(得分:-1)
通过“快速吞噬浏览器的内存”,我假设你的意思是你的LocalStorage配额被你存储的文件用完了。本地存储配额用于防止网站占用太多用户的本地磁盘空间。默认情况下,大多数浏览器将存储限制为每个域5MB。
From the w3 spec,本地存储配额实际上是一项功能,可以防止您要求发生的事情(即用户磁盘上存储的文件多于用户允许配额的网站):
用户代理应限制存储区域允许的总空间量,因为恶意作者可能会使用此功能来耗尽用户的可用磁盘空间。
用户代理应该防范在其来源的其他附属网站下存储数据的网站,例如在a1.example.com,a2.example.com,a3.example.com等中存储限制,以避开主要的example.com存储限制。
用户代理可以在达到配额时提示用户,允许用户为站点授予更多空间。例如,这使站点可以在用户的计算机上存储许多用户创建的文档。