Потоковая передача ответов Http с помощью NodeJS

Я экспериментирую с различными ответами от простого HTTP-сервера NodeJS. Эффект, которого я пытаюсь добиться, — более быстрая визуальная визуализация веб-страницы. Поскольку ответ передается в браузер с 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 мои записи до тех пор, пока объем данных не станет достаточно большим для отправки? Если это так, можно ли настроить размер блока?

7
задан Daniel 17 March 2012 в 16:33
поделиться