直到看到这段代码,我才知道javascript是单线程的,这里输出的结果是比1000大的数。但是我想问的是javascript无论是node或是浏览器中都是单线程的吗?那么那些$.ajax()方法就不能并行执行了吗?那有些网站做到并行渲染多个块是怎么做到的呢?
|
6mN361AJx04in471Aug 12, 2013
1
|
|
ipconfigerAug 12, 2013
2
LZ搞错了,浏览器中,Ajax的请求如果不特殊设置都是新开线程不会阻塞主线程的,setTimeout你可以试试起两个看看就知道了
|
|
MutooAug 12, 2013
3
html5有个新特性 “html5 worker” 可以实现多线程;
|
|
zavaAug 12, 2013
4
异步就是有这么个好处。
|
|
5
@ipconfiger 我猜$.ajax也是新起线程,那你的意思是浏览器中的js有特殊性?
|
|
loadingAug 12, 2013 via iPhone
7
单线程的,还会丢语句,settimeout方法不会丢语句。
web worker可以看一下,一般用于大量运算,操作dom就算了 |
|
otakustayAug 12, 2013
8
ajax属于IO,当然是异步的了,javascript的单线程从来都不包括IO,只是纯粹的脚本执行是单线程的。但是ajax结束后回调至javascript,回调的执行属于脚本还会回到单线程来。
|