有经典节点示例:
var http = require('http');
var s = http.createServer(function(req, res){
res.writeHead(200, {'content-type':'text/plain'});
res.write('hi there\n');
setTimeout(function(){
res.end('and here');
},2000);
});
s.listen(8000);
当我跑
时curl http://127.0.0.1:8000
它很好,"你好"超过2秒 - "在这里"。确定。
但是当我更改字符串#4并删除\ n:
时 res.write('hi there');
我看到延迟(2秒)和同时输出没有任何超时"嗨那里"和"以及"
node -v = 4.2.6
这很好,这很糟糕还是不重要?
答案 0 :(得分:1)
这似乎是浏览器特定的行为。 firefox立即显示数据,而chrome似乎缓冲并等待响应结束。
答案 1 :(得分:1)
答案显示在评论中:it's a line-wise buffer, a buffer that flushes when it sees a line terminator.