我正在试验来自简单NodeJS HTTP服务器的各种响应。我试图实现的效果是更快地呈现网页。由于响应是使用transfer-encoding: chunked
(对吗?)流式传输到浏览器的,所以我想我可以先呈现页面布局,而在延迟之后再呈现其余数据。
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {
'Content-Type': 'text/html'
, 'Transfer-Encoding': 'chunked'
});
res.write('<html>\n');
res.write('<body>\n');
res.write('hello ');
res.write('</body>\n');
res.write('</html>\n');
setTimeout(function () {
res.end('world');
},1500);
}).listen(3000, '127.0.0.1');
问题是,它好像没有发送响应,直到res.end('world')
除非已写入的数据是足够长的时间,所以例如res.write(new Array(2000).join('1'))
,而不是说res.write('hello')
,会做的伎俩。
Node是否正在缓冲我的写操作,直到数据足够大到可以发送为止?如果是这样,块大小是否可以配置?
在读取结束标记之前,浏览器可能不会呈现数据。尝试输出纯文本而不是html标签来进行测试。
您是否看到任何输入进入Firebug / Chrome检查器?
相关问题
http://nodejs.org/api/stream.html#stream_stream_write_string_encoding_fd:
将具有给定编码的字符串写入流。如果字符串已刷新到内核缓冲区,则返回true。返回false表示内核缓冲区已满,并且将来会发送数据。
因此输出.write()
方法的结果。查看它是否返回true或false。
问题内容: 我是Node开发的新手,我正在尝试使用具有JSON响应的RESTful协议进行服务器端API调用。我已经阅读了API文档和本SO帖子。 我试图从轨道总线中提取的API并以JSON输出返回数据。我对如何使用实际URL中的所有参数和选项发出HTTP GET请求感到困惑。甚至可以通过浏览器或使用“ curl”命令来访问API及其响应。http://developer.cumtd.com/ap
当客户端发出请求时,“MonoJust”会打印在第4行,但“test”会在Http响应正文中返回。我知道发布者在订阅之前不会生成数据,那么为什么Http响应包含“test”而不是“MonoJust”?
本文向大家介绍nodejs中使用HTTP分块响应和定时器示例代码,包括了nodejs中使用HTTP分块响应和定时器示例代码的使用技巧和注意事项,需要的朋友参考一下 在本例中,将要创建一个输出纯文本的HTTP服务器,输出的纯文本每隔一秒会新增100个用换行符分隔的时间戳。 以上所述是小编给大家介绍的nodejs中使用HTTP分块响应和定时器示例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留
问题内容: 如何使用request下载文件内容,并使用aws-sdk for node直接将其流式传输到s3? 下面的代码给了我,这使得请求似乎没有返回可读流… 每个aws- sdk文件都 必须是一个对象。 我在这里做错了什么? 可以使用s3-upload-stream模块将其关闭,但是我希望限制我的依赖关系。 问题答案: 如果要手动侦听响应流,则要使用该对象:
问题内容: 我是Go的新手,我正在尝试构建一个简单的HTTP服务器。但是我在JSON响应中遇到了一些问题。我编写了以下代码,然后尝试邮递员发送一些JSON数据。但是,我的邮递员总是得到空响应,而is 。然后,我在http://www.alexedwards.net/blog/golang-response- snippets#json中 检查了一个示例。我复制并粘贴了示例,并且效果很好。但是我看不
我正在尝试使用Netty编写RTSP服务器。 现在,客户端发送请求 我想发回以下回复 我应该使用什么来构造http响应。我应该使用HttpResponse还是只使用普通字节数组并将其转换为ByteBuf? 我使用的Netty版本是4.1.5 提前谢谢。