【发布时间】:2017-10-23 21:18:29
【问题描述】:
我正在使用本地浏览器内数据库来存储数据。但是,我想让用户能够将该数据导出到 CSV。
在谷歌搜索时,我找到了带有数据 url 的解决方案 - 准备带有数据的 url。但是,在我的情况下,每次呈现页面(链接)时要生成 >1MB 的数据。是否有任何替代解决方案可以让我从 JavaScript 生成文件下载,但不需要我预先准备内容 - 仅当用户实际点击链接时?
如果我使用 React 来构建我的应用程序很重要..
【问题讨论】:
-
将预先准备的解决方案(我假设您已经拥有?)转换为仅在点击/需求时或多或少做相同事情(?)的问题到底出在哪里...... ?
-
如果我理解正确,您建议在用户单击另一个按钮时使用 data-url 生成锚点?然后触发一点 JS 来实际点击它?
-
我会先尝试简单地将 Data URI 分配给
location.href,然后看看浏览器是否会让你这样做...... -
嗯,这实际上是一件非常聪明的事情。我在将 10mb 加载到 DOM 时遇到了问题(不要把 10 看得太严重..),但这种方法可能不会导致将其附加到 DOM..
-
dataURL 限制为几兆。您可以使用my download.js lib 从客户端变量(如字符串和类型化数组)下载大文件。它在可用的情况下使用 window.URL 并回退到 dataURL,从而为您提供最大可能的下载大小,而无需费心了解支持细节。
标签: javascript html reactjs