IE8 上的 javascript 多线程 WebWorkers

标签 javascript html

HTML5 WebWorkers 看起来很有前途,但目前 IE8 不支持它们。我正在构建一个商业 Saas,我必须再支持这个浏览器至少 2 年。

如果我开始实现 Web 工作线程并在 IE8 上运行它会发生什么?它只是在单个线程上运行还是根本不起作用?

谢谢。

最佳答案

您会收到错误消息,因为 IE 中根本不存在用于创建 Web Worker 的 API。

例如

var worker = new Worker('my_task.js'); 

会抛出错误,因为 Worker 未定义。

如果要做特征检测,可以在创建worker之前先检查一下:

if(window.Worker !== undefined){
   var worker = new Worker('my_task.js'); 
}

当然,您委托(delegate)给网络工作人员的任何任务都不会在不受支持的浏览器上发生,这意味着您需要在主(非工作人员)上下文上运行逻辑。

由于您将消息发布到 WebWorkers(并监听来自 WebWorkers 的事件/消息),因此如果您对工作线程任务遵循相同的方法,您可以在主要上下文中运行它,并以与您相同的方式调用它如果是网络 worker 的话会的。这将需要您进行一些额外的跑腿工作,但这样当您检测到浏览器支持 WebWorkers 时,您可以轻松切换到 WebWorkers。

关于IE8 上的 javascript 多线程 WebWorkers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10504228/

相关文章:

javascript - Webdriver/FXDriver utils.js 在 Firefox 中导致 'unresponsive script' 错误

javascript - 用Javascript重写单元测试可以吗?

PHP表单刷新

html - background on top off 背景,周围的内容

jquery - 当在最后一页上单击提交按钮时,我需要一个中心显示文字 "Thank you for your time",以及包含绿色脸颊标记的图像

javascript - 用于匹配输入的正则表达式,例如 HTML 输入中模式的 "abc > 10, cba < 100, ..."

javascript - 如何在不留空格的情况下在同一行打印字符串?

javascript - Google Maps API v3 javascript 标记并不总是加载

html - 如何避免 HTML 中一行右侧的空格?

html - 如何定位 <ul> 中的前四个 <li>