gpt4 book ai didi

javascript - 从 JavaScript 流式写入下载文件

转载 作者:行者123 更新时间:2023-12-03 02:07:25 30 4
gpt4 key购买 nike

我正在尝试在浏览器中生成非常大的 PDF 文件,但对于大量数据来说这是不可行的,因为浏览器最终会在文档完成之前耗尽内存。因此,我正在研究一种将写入流式写入文件的方法,一次一页,以便在完成一页写入后可以释放内存。

虽然我显然没有在浏览器中获得文件管理功能(显然),但 Jimmy Wärting 在 StreamSaver.js 中提出了一个最有趣的解决方案。 。这里的主要思想是使用 ServiceWorker 来模拟带有 Content-Disposition: Header 的 HTTP 请求,这将开始下载,然后通过它传输数据。

这些方法的问题主要在于兼容性:并非所有浏览器都支持 Service Worker,Web Streams 也不受支持,它们迫使我们使用 HTTPS,这在某些情况下可能不可行。所以我想知道是否有一种不涉及使用尖端功能的替代方法?

最佳答案

我不认为你可以通过传统的网络功能实现流服务器之类的东西,而不需要一种hacky方式(可能将流数据存储在 IndexDB 中,其中有 relatively more support ,但仍然不是全部),有一个理由不要选择最新的 Web 标准,例如 PWA-service Worker。 IndexedDB 几乎也是 PWA 的一部分,但问题是哪种解决方案更适合您的解决方案。

Service workers are available in most major browsers now 。如果您仍然担心在旧版本浏览器中支持用户,您可以考虑使用 polyfill为他们提供支持服务人员。由于越来越少的开发人员关心在此类用例上支持旧浏览器,因此您可能会发现有关此类 polyfill 实现的文档/支持较少。

关于javascript - 从 JavaScript 流式写入下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49750615/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com