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