2010-03-15 29 views

回答

11

JavaScript does not support native multithreading在当前网页浏览器中。即使是这样,我打赌IE 6不会支持它:)

在多个iframe中运行脚本可能是一种解决方法,如Jason Kester suggested in another answer

此外,对于现代浏览器,你可能有兴趣在检查出Web Workers,但是这是肯定的东西出了IE 6的联赛:

+2

+1(这是一件好事,它没有,我认为;-) – ChristopheD 2010-03-15 22:28:26

+1

网络工作者呢?不是在IE6,显然,但仍... – luiscubal 2010-03-15 22:40:40

+0

@luiscubal是好点。事实上,他们是在我原本与之联系的职位中提到的。修改我的答案以包含更多信息。 – 2010-03-15 22:45:05

1

谷歌Gears是,与IE6的作品,包括一些所谓WorkerPools插件。 Google Gears似乎不再像以前那样非常活跃,因为它试图将Gears的大部分想法转化为HTML5。 WorkerPools基本上是后台进程,不共享状态,只通过消息进行通信。在HTML5中,这已经变成了WebWorkers。你可以在这里找到更多的信息:http://code.google.com/apis/gears/api_workerpool.html

2

那么,HTML5是想出Web-Workers。但我非常怀疑有一个库创建一个在IE6中使用它的包装。

Does my browser support web workers?

+0

我很惊讶没有人提到网络工作者! – 2010-03-15 22:45:35

+0

+1提他们:) – 2010-03-15 22:54:41

1

如果你只是想编写同步代码,从而避免所有的地方来处理书写的事件处理程序,你可以尝试:Strands

3

中的IFrame运行您的任务

假设您正在讨论客户端的多任务处理,您可以在页面上打开n个框架,每个框架指向您域中的页面。

有很多方法可以从那里构建它。也许最简单的做法是让每个框架都包含一个.js文件。它打电话回家parent.readyToGo()或其他,并分配一些工作。工作方法可以调用像parent.taskFinished()这样的方法来完成报告。

最重要的是,不要听任何人告诉你不要在IE6上运行您的任务关键型多线程JavaScript应用程序。我相信你有很好的理由:)