疑问1:测试发现http.get要等其他代码执行完才会请求,node不是异步非阻塞的吗
疑问2:chrome浏览器执行ajax是异步非阻塞的,node跟chrome引擎是不一样的吗
测试代码1(node v6.17.1)
最终打印的时间为get请求+for循环的时间
var http=require('http');
var url=require('url');
var util=require('util');
//客户端请求
console.time("共花费了");
var request=http.get('xxx',function(res){
res.on('data',function(data){
console.timeEnd("共花费了");
})
});
var num = 0
for (var i = 1; i < 9000000000; i++) {
num += i
}
测试代码2(chrome)
最终打印的时间为get请求所花费的时间,而不是get跟for相加的时间
console.time('总共');
var xhr = new XMLHttpRequest();
xhr.open("GET", "xxx", true);
xhr.onload = function (e) {
console.timeEnd('总共');
};
xhr.send(null);
var num = 0;
for (i = 0; i < 200000000; i++) {
num += i;
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…