【发布时间】:2012-09-26 01:38:35
【问题描述】:
- Javascript 在设计上是不鼓励或不允许同步阻塞 IO 吗?
- 为什么 Javascript 中没有 sleep API?是不是因为以上几点?
- 浏览器可以有多个执行 javascript 的单线程吗?为什么总是单线程?
以上几点(由于浏览器限制)是否使 javascript 成为服务器端非阻塞语言的理想语言?
【问题讨论】:
标签: javascript node.js
以上几点(由于浏览器限制)是否使 javascript 成为服务器端非阻塞语言的理想语言?
【问题讨论】:
标签: javascript node.js
浏览器只会在一个线程中运行 Javascript(至少每个域,Web Worker 除外)。
这主要是为了简单;直到最近,还没有人为 Javascript 编写线程 API。
为了使浏览器更易于编写(更快),这个线程是浏览器 UI 线程。因此,Javascript 中的任何同步工作(或睡眠调用)都会冻结浏览器。
这就是强烈反对同步操作的原因。
【讨论】:
window.open(),新窗口必须共享你的UI线程。