chrome - не ждите, пока все данные будут получены - node.js - PullRequest
2 голосов
/ 24 марта 2011

Я экспериментирую с node.js и возможностью держать http-соединение открытым, чтобы отправлять новые данные позже. Так же, как односторонняя розетка.

У меня есть http-сервер node.js:

var http = require("http");

var s = http.createServer(function(req,res){    
    var i = 0;
    res.writeHead(200,{'content-type': 'text/plain'});
    var iv = setInterval(function(){        
        res.write((i++)+"");
        if(i == 50){
            clearInterval(iv);
            res.end("");

        }
    },1000);
});
s.listen(8000);

Когда я делаю запрос к этому серверу в Firefox, я каждую секунду получаю новый номер, пока не будет достигнут номер 50.

В chrome он ждет 50 секунд, а затем выдает мне все цифры одновременно. Как я могу добиться того же поведения Firefox в Chrome?

Ответы [ 2 ]

3 голосов
/ 24 марта 2011

Я нашел ответ:

Google Chrome и потоковые HTTP-соединения?

Странно, что мне сначала нужно отправить столько байтов, чтобы включить потоковую передачу, ноэто работает.

Моему chrome нужно сначала 1024 байта.

ОБНОВЛЕНИЕ

Кроме того, вы можете установить тип содержимого text / javascript.Тогда потоковое воспроизведение начинается немедленно!

0 голосов
/ 24 марта 2011

Браузерам не нужно реализовывать функцию частичного ответа ajax, взгляните на Google, есть много совершенно разных способов решения этой проблемы для каждого браузера.

...