【发布时间】:2020-07-17 21:04:49
【问题描述】:
如何在浏览器中使用 Javascript 存储单个大文件(约 50MB),以便跨多个请求在用户会话中持续存在?
我有一个 Web 应用程序,它下载基于 JSON 的索引文件以帮助执行某些计算。但是,它不会经常更新,因此为了防止用户每次加载应用程序时都必须下载这么大的文件,我想将其存储在本地。
我看到了一些类似的问题,并看到 IndexedDB 被推荐用于“大数据”应用程序,但这似乎更适合于持久存储大量小记录,而不是像我尝试的那样存储单个大文件做。
我希望使用 LocalFileSystem API,这看起来正是我想要的,但与 Mozilla 文档相反,它似乎只在 Chrome 中受支持,即使那样,所有调用都警告你它是“已弃用”。
【问题讨论】:
-
基本缓存头
-
@epascarello 显然有些浏览器将可缓存文件的大小限制在 ~50MB:support.mozilla.org/en-US/questions/1262578
-
@Christian 是的,但是对于这么大的文件会遇到很多问题。通常当我得到这么多数据时,我一定会问,我真的需要一次所有的数据吗?
-
这能回答你的问题吗? How to import json file into indexeddb?
-
这个 50MB JSON blob 中到底有什么?我感觉运行
JSON.parse( fiftyMegabytesOfJson )会导致浏览器冻结几秒钟……你不能把它分解成客户端实际需要的更易于管理的块吗?
标签: javascript