2010-01-27 41 views

回答

7

一个PDF链接你会得到最接近的是网络工作者。查看 - http://www.whatwg.org/specs/web-workers/current-work/

+0

John Resig也在谈论这些:http://ejohn.org/blog/web-workers/。他们甚至制作了JavaScript光线追踪器,哈哈。 – 2010-01-27 10:10:40

0

JavaScript是一种动态编程语言,可用于许多不同的事情。如果它没有在浏览器中使用,你可以完全依赖多线程,事件循环等。你应该检查出node.js

不幸的是,浏览器只给你一套严格的语言功能。

1

我发现相当稳定的线程的另一个模拟是使用图像。这似乎是加载在另一个线程在浏览器(?)。但是,您的回调JavaScript将始终按顺序运行。

下面它载入500个。

<html> 
<head> 
    <title>so</title> 
    <style></style> 
</head> 
<script> 
    function callBack(img){ 
     var i = 0, img, res = document.getElementById('res'), 
      fn = function(cnt){ 
       var img = document.createElement('img'); 
       img.onerror = function(ev){ 
        res.innerHTML += cnt + ', '; 
        document.body.removeChild(img); 
       }; 
       img.src = 'javascript:void(0)'; 
       document.body.appendChild(img); 
      }; 
     do{ 
      fn(i++); 
     }while(i<500); 
    } 
</script> 
<body onload="callBack()"> 
    <div id="res"></div> 
</body> 
</html> 
0

网络工作者

您可以使用Web Workers创建后台线程

网络工作者提供了一个简单的手段对网页内容运行在后台线程的脚本。工作者线程可以执行任务而不会干扰用户界面。另外,他们可以使用XMLHttpRequest执行I/O(尽管responseXML和channel属性始终为空)。一旦创建,工作人员就可以通过将消息发布到由该代码指定的事件处理程序(或反之亦然),将消息发送到创建它的JavaScript代码。本文详细介绍了如何使用Web工作人员。

浏览器兼容性

铬:4

火狐(壁虎):3.5

Internet Explorer中:10.0

歌剧:10.6

Safari浏览器(WebKit的):4