Я пытаюсь следовать учебник здесь:Почему response.write блокирует мой браузер в Node.js?
http://nodetuts.com/tutorials/2-webtail-nodejs-child-processes-and-http-chunked-encoding.html#video
Следующий код работает
var http = require('http');
var spawn = require('child_process').spawn;
http.createServer(
function (request, response) {
response.writeHead(200, {
'Content-Type':'text/plain'
});
var tail_child = spawn('tail', ['-f', 'temp.txt']);
request.connection.on('end', function() {
tail_child.kill();
});
tail_child.stdout.on('data', function (data) {
console.log(data.toString());
response.end(data.toString());
});
}).listen(9000);
Однако браузер не получает обновления temp.txt. Если я заменяю
response.end(data.toString());
с
response.write(data.toString());
Это, как представляется, блокировать и ничего не отображается в браузере.
Edit: Я хотел бы браузер, чтобы непрерывно отображать любые дописывает в текстовом файл в режиме реального времени в соответствии с обучающей
Я сделал редактирование для уточнения – deltanovember
Да, потому что, если вы никогда не вызываете 'response.end()' ответ никогда не отправляется. –
В учебнике отсутствует response.end(), но новые приложения появляются в потоке в браузере – deltanovember