注意:对于那些关于settimeout的人来说,这不是一篇重复的文章,这里的关键答案是浏览器设计选项。
我开始研究node.js:一个测试异步的简单示例:
var http=require('http');
http.createServer(
function(request, response){
response.writeHead(200);
response.write("Hello, dog is running");
setTimeout(
function(){
response.write("Dog is done");
response.end();
},
10000
);
}
).listen(8080);
console.log("Listen on port 8080") 有趣的是,在命令lind和curl中的行为和在浏览器中的行为是不同的:在Ubuntu 12.10中,我在两个控制台中使用curl localhost:8080,它们在几乎相同的10个发送中响应。
但是,我打开两个浏览器,几乎同时发出请求,但整个过程却花了我20秒?
谢谢。
发布于 2013-04-07 01:30:22
等待的是浏览器,而不是node.js
如果您在两个选项卡中运行服务器和请求http://localhost:8080/,则需要20秒,因为浏览器在启动第二个请求之前会等待对同一个url的第一个请求。
如果您运行服务器并在两个选项卡中请求http://localhost:8080/1和http://localhost:8080/2,则再次需要10秒。
https://stackoverflow.com/questions/15852011
复制相似问题