为什么Android浏览器在2.2及以上版本中删除了对HTML5 Web Workers的支持?

42

我正在学习有关JavaScript线程的知识。从一篇教程中,我了解到HTML5 API web worker可以实现JavaScript多线程。因此,我开始思考如何以及在哪里可以使用此功能。

通过查看http://caniuse.com/#search=worker,我发现此API仅在较低版本的Android浏览器中受支持。在Android 2.2及更高版本中不可用。

这个结果正确吗?如果是的话,是因为性能方面的考虑吗?

在哪个版本中将会支持此API?

3个回答

38

来自Android 2.2的config.h


提交号68698168e7547cc10660828f1fb82be7a8efa845

作者:Steve Block

日期: 2010年3月17日,格林威治标准时间下午2:37:19

禁用工作线程

这是因为Android上的V8引擎没有所需的锁定功能。 同时禁用了通道消息传递,该功能仅与工作线程一起使用。

问题编号:2522239

更改编号:I6cb91b4048c7e1a0351e422561625397a2e98986


通过http://code.google.com/p/android/issues/detail?id=10004#c7


18
关于 API 何时可用,Web Workers (但不包括 Shared Workers)现在在 Chrome Mobile 中可用,仅适用于 ICS(Android 4.0)及更高版本的设备。
请注意,Android 4 上的内置浏览器不支持 workers;您必须安装 Chrome。

3
回复有些晚,但这只是部分正确;Chrome移动版中可以使用“Dedicated Workers”,但不支持“Shared Workers”。另一个需要注意的问题是,尽管 ('SharedWorker' in window) 返回 true ,定义路径也会发出请求,但似乎消息传递被存根化了。 - borbulon

2
  • 自从 Android 4.4 版本以来,内置的 Android 浏览器重新支持 Web Workers详情请见
  • Shared Workers 在 Android 浏览器和 Chrome for Android 中仍然不被支持。详情请见

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接