node.js和setTimeout以及谷歌浏览器

时间:2013-06-30 16:51:02

标签: node.js

我是node.js的初学者我在使用setTimeout(function(){.....},time); thingo时遇到了一些问题。当我卷曲本地服务器但谷歌浏览器没有预期时(我没有测试过其他浏览器),这种方法很好用。

我的代码是:

/* simple node.js createserver */

var http = require('http');

http.createServer(function (request, response) {
     response.writeHead(200);
  response.write('Somthing\r\n');

  setTimeout(function(){
        response.end('\n This came out after 5 seconds :) ');
  }, 5000);
   response.write('Hello World\n');
}).listen(8124);



console.log('Server running at http://127.0.0.1:8124/');

当我curl 127.0.0.1:8124一切按预期工作时。但是当我在浏览器中指出它时,它会保持闲置一段时间(我猜这是5秒)并立即显示所有内容?这是node.js的预期行为还是我遗漏了什么?浏览器可以做像curl那样的事情(即先打印两行,然后等待5秒再打印另一行)?

2 个答案:

答案 0 :(得分:1)

预计 - 浏览器不会在完成加载之前显示页面(我相信大块可能存在异常,但大多数情况下都是如此)

答案 1 :(得分:1)

试试这个

http.createServer(function (request, response)

  response.setHeader('Content-Type', 'text/html; charset=UTF-8');
  response.writeHead(200);
  response.write('Somthing\r\n');

  setTimeout(function(){
    response.end('\n This came out after 5 seconds :) ');
  }, 5000);

  response.write('Hello World\n');
  //No point writing Hello World here as it is written immediately

}).listen(8124);