当前位置: 首页 > 面试题库 >

在结束响应之前如何输出数据?

壤驷兴朝
2023-03-14
问题内容

这是我在Chrome 11和Firefox 4中测试过的代码段:

var http = require('http');

http.createServer(function(request, response){
   // Write Headers
   response.writeHead(200);

   // Write Hello World!
   response.write("Hello World!");

   // End Response after 5 seconds
   setTimeout(function(){ 
        response.end(); 
   }, 5000);

}).listen(8000);

如您所见,我超时了,response.end()所以我可以测试是否response.write在之前输出response.end。以我的经验,虽然不是。

有没有一种方法可以在结束响应之前输出数据,例如以包形式发送数据?


问题答案:

如果将内容类型更改为文本/纯文本,例如:

// Write Headers
response.writeHead(200, {'Content-Type': 'text/plain'});

然后firefox将立即显示内容。Chrome似乎仍在缓冲(如果您编写更多内容,Chrome会立即显示它)。



 类似资料:
  • 问题内容: 在将文档保存到数据库后,我试图停止发布请求,即: 目前,我只是简单地使用哪个起作用,但是页面刷新是完全任意的,我希望它不会发生。我去了,但是那把客户带到了空白页。 提前致谢。 编辑: 我认为我在对不起我做事时不够清楚。 也许是不好的做法,但这正在发生: POST启动数据库保存功能 浏览器坐在附近等待响应 准备就绪后,将obj保存到数据库,然后回调触发一个 NowJS 函数,该函数将项目

  • 当响应被关闭时,容器必须立即刷出响应缓冲区中的所有剩余的内容到客户端。以下事件表明 servlet 满足了请求且响应对象即将关闭: servlet 的 service 方法终止。 响应的 setContentLength 或 setContentLengthLong 方法指定了大于零的内容量,且已经写入到响应。 sendError 方法已调用。5.6 sendRedirect 方法已调用。 Asy

  • 我试图从一些HTML中分离出整数,例如“ 5500英里 ”。 我的代码成功地删除了逗号和“英里”,但是在我的CSV输出中,我在这列中得到了不需要的空白行,我认为这是由于原始源代码中的回车。我的CSV看起来像这样: 我的CSV 所以标题和价格栏都很好。但“里程”列是错误所在。 我的脱衣舞指挥有什么问题吗?

  • 响应输出 大多数情况,我们不需要关注Response对象本身,只需要在控制器的操作方法中返回数据即可,系统会根据default_return_type和default_ajax_return配置自动决定响应输出的类型。 默认的自动响应输出会自动判断是否AJAX请求,如果是的话会自动输出default_ajax_return配置的输出类型。 最简单的响应输出是直接在路由闭包或者控制器操作方法中返回一

  • 问题内容: 如何在Node.js中关闭可读流? 这会比以下更好: 但这不会停止阅读过程… 问题答案: 调用。它不在文档中,但是 https://github.com/joyent/node/blob/cfcb1de130867197cbc9c6012b7e84e08e53d032/lib/fs.js#L1597-L1620 显然可以完成这项工作:)它实际上所做的事情与您的相似。 EDIT 2015

  • HTTP 响应报文分为三个部分: 响应行 响应头 响应体 对于 HTTP 响应体的输出,在 OpenResty 中调用 ngx.say 或 ngx.print 即可。经过查看官方 wiki ,这两者都是输出响应体,区别是 ngx.say 会对输出响应体多输出一个 \n 。如果你用的是浏览器完成的功能调试,使用这两着是没有区别的。但是如果使用各种终端工具,这时候使用 ngx.say 明显就更方便了。