href 下载的 xlsx 文件偶尔会损坏

href download xlsx file would be occasionally corrupted

我正在使用 Typescript 开发 Angular4。

我能够使用 XLSX 填充库创建 blob。

假设下面的 blob 是一个有效的 xlsx 对象

var url = window.URL.createObjectURL(blob);
          var a = document.createElement("a");
          document.body.appendChild(a);
          a.href = url;
          a.download = "download file.xlsx";
          a.click();

我在执行过程中保存了 blob 变量。 然后手动 运行 这个块只有大约 20 次。 (该 blob 未重新制作或覆盖)

结果不一致。

下载的 XLSX 文件有时会损坏,有时则不会。

我调查了 javascript 的异步性质,但是因为 blob 已经创建并且一些尝试能够生成有效的 xlsx 文件。我完全不知道下一步该怎么做。

更新: 还是没有解决。但是我在 SAME href 4x 上连续触发了点击事件,中间没有其他行,我得到了 2 个工作版本和 2 个失败版本。

这可能不是一个确切的答案。但我发现只需等待几秒钟,xlsx 文件就完全没问题了。如果我重试,即使最初打开时第一次失败的文件也可以打开。

这让我相信它与 chrome 检测文件已准备就绪的方式有关。

不过,这最终不是 href 下载的问题。