最近学习HTML5的时候发现这个技术,不得不惊叹。
什么是Web Workers?
Web Workers为WEB前端网页上的脚本提供了一种能在后台进程中运行的方法。一旦它被创建,Web Workers就可以通过postMessage()向任务池发送任务请求,执行完之后再通过postMessage()返回消息给创建者指定的事件处理程序(通过onmessage进行捕获)。
Web Workers进程能够在不影响用户界面的情况下处理任务,并且,它还可以使用XMLHttpRequest来处理I/O,无论responseXML和channel属性是否为null。
注意:通常,后台进程(包括web workers进程)不能对DOM进行操作。如果希望后台程序处理的结果能够改变DOM,只能通过返回消息给创建者的回调函数进行处理。
更详细介绍:点击这里
哪些浏览器支持Web Workers?
- FireFox3.5(Firefox 3.1 support for DOM workers)
- Safari4
- 支持html5的浏览器
Web Workers性能测试(请使用支持该技术的浏览器浏览)
workers不仅仅能够让我们未来的
web APP更加MVC。同时,他的异步后端运算给web程序带来更多可能性。
到底有什么好处? mozbox的Paul Rouget用模拟退火算法(Simulated annealing)给我们演示了workers的优越性。
1. 不了解 Simulated annealing 的可以先看看这个图形化的演示过程,了解的同学直接看第二步
http://people.mozilla.com/~prouget/demos/simulatedAnnealing/index.xhtml
先load,然后start
2. 确定一下,您有没有安装firefox 3.5 beta3 。
3. 看看worker的演示吧.
http://people.mozilla.com/~prouget/demos/worker_and_simulatedannealing/index.xhtml
可以看到如果没有使用workers,同时计算6个Simulated annealing,可以发现浏览器已经卡死,gif图片也停止播放。
当我们开启workers的演示后,浏览器不仅仅没有卡死,同时gif图片也正常播放,并且结果的现实比没有开启workers前快不少。
有意思哈,不过支持的浏览器太少了点
回复
有点高深的样子,不过听起来很实用
hh:
回复
哈哈,换界面了呀,比先前的那个漂亮多了。
回复
狐狸转晕了
回复