Javascript 有哪些阻塞命令?只见过 alert
,还有其他的吗?
首先,很多命令都是阻塞的,比如 DOM 操作、localStorage
的读取。但是这里谈论阻塞没有什么意义,因为操作很快就完成了。
其次,Node.js 里面很多 IO 可以是阻塞的,但是我猜想题主问的是浏览器环境下的 JavaScript,所以就不讨论了。
再其次,Web worker 里面有很多操作可以是阻塞的,但是这同样没有什么意义,因为 worker 与主线程之间是只能够使用异步通讯的。
那么看一下,排除以上三点,我所能想到的就只剩下:
-
window.alert
-
window.confirm
-
window.prompt
- 同步的
XMLHttpRequest
的send
方法
除了setTimeout和setInterval外,浏览器端js基本上都是阻塞的,只是阻塞的时间长短问题。
while(1);
debugger 算么。
alert
confirm
prompt
showModalDialog
所有涉及DOM操作(增、删、改)的都是阻塞的