【问题标题】:Firefox -- "FileReader is not defined" only when called from Web WorkerFirefox——“FileReader 未定义”仅在从 Web Worker 调用时
【发布时间】:2014-03-30 07:35:46
【问题描述】:

在 Firefox 中,以下代码在主浏览器线程中正常运行时可以正常工作--

var fr = new FileReader();

..但是当从 web worker 运行时,会抛出以下错误:

FileReader is not defined

相同的代码在 Chrome 和 Safari 中运行良好。

对于在 Firefox 的 web worker 中支持 FileReader 有什么建议吗?

【问题讨论】:

  • 你试过用FileReaderSync代替FileReader吗?
  • @adeneo,是的,这似乎是受支持的。 FF 不支持异步文件读取吗?当我使用 FileReader 时,chrome/safari 是否实际上是同步运行的?
  • 好吧,FileReaderSync 仅在工作程序中支持,因为您通常不需要在工作程序中进行异步文件读取,但我不确定为什么 Firefox 不需要不支持 worker 中的常规异步 FileReader,我认为他们支持,但至少它们支持同步版本,因此您可以使用它,因为您不需要在 worker 中进行异步行为。

标签: javascript firefox filereader web-worker fileapi


【解决方案1】:

正如 adeneo 指出的那样,Web Workers 中的 Firefox 似乎根本不支持 FileReader。我可以使用FileReaderSync 来完成我需要的工作。

【讨论】:

  • bugzilla 上关于 Firefox 缺点 bugzilla.mozilla.org/show_bug.cgi?id=901097987654321@的错误请求
  • Web Worker 尤其适用于阻塞、密集型任务,这些任务可能会阻塞主线程,从而导致糟糕的用户体验(UI 阻塞等)。这可能是 Firefox 在 FileReader 之前专注于在 Workers 中实现 FileReaderSync 的原因,它在 Web Worker 上下文中更有意义。
猜你喜欢
  • 1970-01-01
  • 2012-07-18
  • 2014-10-24
  • 2022-09-29
  • 2015-08-07
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
相关资源
最近更新 更多