无法使用javascript下载大数据

2024-02-27

我在 javascript 中有大量 JSON 对象形式的数据。我已使用 JSON.stringify() 将其转换为字符串。现在我的用例是在文本文件中向用户提供这个大字符串。为此,我编写了下面的代码。

HTML代码

  <button id='text_feed' type="submit">Generate ION Feed</button>

  <a href="data:attachment/txt" id="textLink" download="feed.txt"></a>

JavaScript 代码

 var text = //huge string  

 $("#text_feed").click(function() {
        _generateFeed(text);
 });

 var _generateFeed = function(text) {
    //some code here
    $("#textLink").attr("href",
                          "data:attachment/txt," + encodeURIComponent(text))  [0].click();
    });
 }; 

Problem:当字符串长度很小时,我可以下载数据。 但是当字符串长度变长(> 10^5)时,我的页面崩溃了。 发生这种情况是因为“encodeUriComponet(text)”无法编码大 数据。

我也尝试过window.open("data:attachment/txt," + encodeURIComponent(text));但由于相同的原因,我的页面再次崩溃,encodeURIComponet 无法编码如此大的字符串。

另一种方法:我还考虑使用 HTML5 文件写入 API 将数据写入文件,但它仅在 Chrome 网络浏览器中支持,但我需要至少在 Firefox 和 chrome 上实现此功能。

Use Case我不想通过破坏数据来进行多次下载,因为我最终需要将数据保存在单个文件中。

我的目标是支持大约 10^6 长度的字符串。任何人都可以帮助我如何将这么多数据下载/写入到单个文件中。


来自OP https://stackoverflow.com/questions/30167326/unable-to-download-large-data-using-javascript#comment48446606_30167326:

我如下解决了它。

var _generateFeed = function(text) {
    /*some code here*/
    var url = URL.createObjectURL( new Blob( [text], {type:'text/plain'} ) );
    $("#textLink").attr("href",url)[0].click();
}; 

Notes:

  • URL.createObjectURL() https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL与现代浏览器和 IE10+ 兼容,但它是一项不稳定的实验性技术。
  • 使用 URL.createObjectURL() 创建的对象“必须通过调用来释放URL.revokeObjectURL() https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL当你不再需要它们时。" - MDN https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#Notes
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用javascript下载大数据 的相关文章

  • 悬停此元素时隐藏元素后的伪元素

    我的菜单垂直放置在页面左侧和菜单之间 li 我有一个 after那是一个分隔符 我想要的是当我悬停元素本身 如果它是第一个元素 时隐藏 after 元素 或者当它是中间元素时隐藏上面和底部的元素 如果它是最后一个子元素 则隐藏 after前
  • 响应式图像 - srcset 和尺寸属性 - 如何正确使用两者:基于设备像素比和基于视口的选择一起?

    到目前为止 我经常读到这个问题 并且它也发生在我自己的项目中 这里介绍一下我到目前为止所发现的关于 srcset 和 size 属性的内容 关于如何使用有两种不同的可能性srcset 属性 来源 w3c http w3c github io
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • 引导程序提前输入未填充承诺的响应

    我的引导程序预输入如下
  • Angular - CSS - 自定义类型=文件输入,如何使用按钮而不是标签?

    我制作了一个类型为 file 的自定义输入字段 因为我不喜欢默认的输入字段 为了实现这一目标 我做了
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • 如何解决 Typescript 构建中的错误“找不到模块 'jquery'”

    我目前在 ts 文件的顶部有这个import require jquery 我这样做是因为我试图在我的打字稿文件中使用 jquery 但我似乎无法编译它 因为它返回标题中所述的错误 我正在使用 ASP NET CORE 脚本文件夹 tsco
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 在 HTML 下拉列表中有一个滚动条

    我正在寻找一种在 HTML 的下拉列表中添加滚动条的方法 这样如果下拉列表包含的内容超过例如 5 项 将出现滚动条以查看其余项 这是因为我将被迫列出一些大清单 过去几个小时我一直在谷歌上搜索它 但没有运气 它需要适用于 IE8 FF 和 C
  • 表格行未扩展到全宽

    我有一个表格 当我将表格的宽度设置为 100 并将表格行的宽度设置为 100 时 没有任何反应或宽度发生变化 Table Normal position relative display block margin 10px auto pad
  • 在 Shopify 商店中嵌入 Vue 组件

    在产品页面中 我尝试显示自定义 Vue 组件 为简洁起见 该组件根据给定的产品 ID 显示 Firebase 数据库中的一些信息 我最初尝试将其制作为 Shopify 应用程序 以便我可以访问他们的 API 我实现了 OAuth 并且可以检
  • Javascript - 水波纹效果

    我需要 JS 上的脚本 它将以 水波纹 样式更改 images html 抱歉 6MB GIF 文件 http fcuunited ru temp listening2 gif http fcunited ru temp listening
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何
  • Javascript Replace() 和 $1 问题

    我正在尝试创建一个脚本来搜索文本中的模式并在它找到的字符串周围包裹一个标签 shop attributes td each function this html function i html return html replace E 0
  • 使用 MongoDB 和 Nodejs 插入和查询日期

    我需要一些帮助在 mongodb 和 nodejs 中按日期查找记录 我将日期添加到抓取脚本中的 json 对象 如下所示 jsonObj last updated new Date 该对象被插入到 mongodb 中 我可以看到如下 la
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev
  • 如何在react-highcharts中使用图表工具提示格式化程序?

    如何使用图表工具提示格式化程序 我正在使用高图表的反应包装器 我有这样的配置 const CHART CONFIG tooltip formatter tooltip gt var s b this x b each this points

随机推荐

  • 结构对于其他文件的可见性如何表现?

    这是摘自对 SO 上另一个问题的回答 结构定义对于源文件来说是私有的 除非放置在 共享头文件 没有其他源文件可以访问该成员 struct 即使给定一个指向该结构的指针 因为布局不是 在其他编译单元中已知 如果该结构需要在其他地方使用 则必须
  • Twitter Bootstrap Collapse 不执行任何操作

    我正在尝试使用 twitter bootstrap 网站上提供的示例来崩溃 当我尝试此代码时 单击链接折叠内容没有任何反应 这是我的代码
  • 推送到数组后,待办事项列表不会刷新

    每当我向数组添加待办事项时 它都不会在 html 中刷新 我需要什么来解决这个问题 另外 如何将循环创建的删除按钮连接到函数 const form document querySelector form const input docume
  • 从 crontab 运行存储过程

    我有布局 Mysql DB DB name db name DB User name user name Password 12345 Stored procedure my stored procedure 如何从 crontab 每天执
  • JavaScript 可以像 jQuery 一样使用 prevAll 吗?

    如何在 JavaScript 中实现这一点 function prevAll element some code to take all siblings before element return elements With previo
  • 如何以rails方式获取新创建记录的id?

    假设我有 2 个模型model1 and model2 model1有很多model2 model2 belongs to model1 Save model1 and model2同时 class Model1 lt ActiveReco
  • 从nodejs调用firebase云函数

    我想从另一个 NodeJS 服务器或只是一个 NodeJS 脚本调用 Firebase 的云函数 我的 firebase 函数是 onCall 函数 我在用https www npmjs com package firebase admin
  • Sprockets::FileNotFound 找不到类型为“text/css”的文件“bootstrap”

    这是当我尝试运行 Rails 服务器时在浏览器中遇到的错误 couldn t find file bootstrap with type text css 我的 gemfile 中有这个 gem bootstrap sass gt 3 3
  • 在 QtQuick 中应用 MVVM 模式

    我如何在 QtQuick 应用程序中应用 MVVM 模式 有人能给我任何示例 简单 代码吗 Thanks 使用 C ViewModel https bitbucket org AntyaDev qtquickmvvmexample over
  • 如何减少anaconda目录下的文件数量?

    我在计算集群上运行 conda 环境 其中每个 项目 的文件总数受到限制 最多 200k 个文件 我只创建了几个 conda 环境 anaconda for Python 2 7 每个环境中安装了约 200 个 python 和 R 包 环
  • 如何从 mp4 视频中删除或编辑 Exif?

    我用 Samsung Galaxy II 录制了一个全高清视频 当我将其上传到 YouTube 时 我发现它变成了 90 度 就像纵向布局 1080x1920 而不是 1920x1080 我找到了问题的原因 YouTube 正在读取视频元数
  • JNA 结构和指针映射

    如何将下面的函数映射到java VOID WriteToStruct BOOL 状态 STRUCT MSG RecBuff 这个函数的作用是 1 填充结构 RecBuff2 更新状态 如何映射到 Java 中的布尔指针并访问函数更新的结构数
  • STM32 上的 ADC 单次转换

    我正在研究 STM32 F103x 上的 ADC 编程 并从最简单的情况 单次转换开始 测量内部温度传感器 连接到 ADC1 的值 并使用 USART 将其发送到 COM 端口 目标似乎很明确 但是当我尝试将源代码下载到闪存时 它不会向 C
  • Django 1.8 与 Postgres BDR 9.4.1 的迁移

    我正在尝试使用 BDR 在 Postgres 数据库上运行 Django 迁移 python manage py makemigrations 工作正常 但正在运行 python manage py migrate 结果出现以下错误 ALT
  • 从文本内容生成标签

    我很好奇是否存在一种算法 方法可以通过使用一些权重计算 出现率或其他工具从给定文本生成关键字 标签 此外 如果您为此指出任何基于 Python 的解决方案 库 我将不胜感激 Thanks 实现此目的的一种方法是提取文档中出现频率比您预期的偶
  • ionic - iPAD 中的下拉列表闪烁

    我的 Ionic 应用程序中的下拉列表在 iPAD 中闪烁 1 在下拉点击 2 如果点击外部下拉列表 3 如果点击下拉列表内 将再次显示图像 1 它在 iPhone 5s 上运行良好 但在 iPAD 中则不然 有什么解决方案或解决方法吗 E
  • 如何使用 Selenium 进行搜索、向下箭头并按 Enter 键

    我正在尝试搜索一家公司 在 inhersight com 上向下箭头并单击 Enter 我有以下代码 但它似乎不起作用 from selenium import webdriver from selenium webdriver commo
  • Flutter 可以高效地布局嵌套列表吗?

    这样的布局在 Flutter 中能否实现并高效渲染 Example 黄色和蓝色块都可以有大约 30 个元素 所以我想应该使用类似 ListView builder 的东西 我尝试过嵌套2个ListView builder 内部带有shrin
  • Knuth-Morris-Pratt 失效表

    我正在准备考试 正在研究 Knuth Morris Pratt 算法 考试内容是不及格表和 DFA 构建 我了解 DFA 构造 但我不太了解如何制作失败表 如果我有一个模式 abababc 的示例 如何从中构建失败表 解决办法是 失败表 0
  • 无法使用javascript下载大数据

    我在 javascript 中有大量 JSON 对象形式的数据 我已使用 JSON stringify 将其转换为字符串 现在我的用例是在文本文件中向用户提供这个大字符串 为此 我编写了下面的代码 HTML代码