app.get('/', function(req, res) {
res.set('Content-Type', 'text/html');
res.send('Yo');
setTimeout(function(){
res.send("Yo");
},1000);
});
看起来像#34;发送"结束请求。如何让这个在屏幕上写Yo
,然后在1秒之后(有点像我猜的长轮询)写另一个Yo
得到YoYo
?除了发送之外还有其他方法吗?
答案 0 :(得分:2)
使用res.write
分段生成输出,然后使用res.end
完成回复。
答案 1 :(得分:1)
我不认为你想做的事情是可能的。 发送响应后,将关闭客户端 - 服务器连接。
查看套接字(特别是socket.io)以保持连接打开并在其上发送多条消息。
答案 2 :(得分:0)
node.js的关键在于它依赖于 异步 “样式”。因此,如果你引入类似“等待”功能的东西, 你将失去异步执行方式的所有好处 。
我相信你可以通过以下方式获得类似的东西:
例如:
for(i=0; i < 100000000; i++) {
//do something
}
答案 3 :(得分:0)
尝试使用JQuery + JSON。发送响应,然后使用JQuery和JSON更新您需要的内容。
这是一个很好的tutorial快递,包括DB的东西(mongodb)。
答案 4 :(得分:0)
如果您想将结果作为单个块发送,请尝试
app.get('/', function(req, res) {
res.set('Content-Type', 'text/html');
res.write('Yo');
setTimeout(function(){
res.end("Yo");
},1000);
});
或类似
app.get('/', function(req, res) {
res.set('Content-Type', 'text/html');
var str = 'yo';
setTimeout(function(){
res.end(str + 'yo');
},1000);
});