并行请求或像Node.js一样排队



如何让 JavaScript 像 Node.js 一样在客户端上执行"非阻塞"操作? 我目前有 Node.js通过 Socket.IO 将更新推送到客户端,同时我有多个 AJAX 调用获取数据 onLoad,这些数据似乎并行运行,然后处理结果数据,将其呈现到我的 Knockout 视图、一些 jQuery 操作等......

但是我一直遇到阻塞问题,例如,数据从 Node 推送进来,但没有被处理,而 Javascript 正在处理我的 AJAX 回调结果或其他正在运行的 JS 方法的结果。 理想情况下,我希望能够并行运行多个函数。

我意识到 JavaScript 是单线程的,但是使用 Node.js 作为模型,我怎么能在客户端上伪造"非阻塞"?

WebWorkers

HTML 5规范允许使用称为WebWorkers的构造进行并行处理。您可以在以下链接中找到有关此规范的详细信息(按我认为有用的顺序列出):

  • https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers
  • http://www.html5rocks.com/en/tutorials/workers/basics/
  • http://caniuse.com/#feat=webworkers
  • http://www.w3schools.com/html/html5_webworkers.asp

最新更新