Как остановить браузер от «ожидания» обратного вызова Node.js - PullRequest
4 голосов
/ 03 июня 2011

Я создаю приложение Express JS на Node.js и реализовал страницу, которая будет вызывать обратные вызовы для обновлений в режиме реального времени согласно chat.nodejs.org (https://github.com/ry/node_chat). Я следовал подходу в 'node_chat' к at, и страница обновляется корректно, если обновление сделано из другого браузера. Единственная проблема заключается в том, что я не могу остановить браузер (Chrome) от «Ожидания локального хоста» и его вращения, что, по-моему, не нужно.

Вот упрощенные версии моего кода (для краткости). Есть идеи?

client.js (на стороне клиента):

function poll(data) {
// ...
if(data){
    // do something with the data

} 
    $.ajax({
        cache:false,
        type:'GET',
        url:'/json-people',
        dataType: 'json',
        data: {
            slug: queue.slug,
            since: CONFIG.last_timestamp
            },
        error: function () {
            // handle error
        },
        success: function (data) {
            poll(data);
        }
    });
};

app.js:

app.get('/json-people', function (req, res) { 
  queueProvider.query(req.param('slug'), req.param('since'), function (people){
    res.send({people: people}, 200);
  });

});

Кажется, не имеет значения, что я положил в метод queueProvider.query, он будет вращаться до тех пор, пока не будет выполнен res.send (...).

Я использовал https://github.com/ry/node_chat/blob/master/client.js и https://github.com/ry/node_chat/blob/master/server.js для справки.

Particularily:

fu.get("/recv", function (req, res) {...}

и

channel.query ()

и

channel.appendMessage()

Спасибо.

1 Ответ

5 голосов
/ 03 июня 2011

Я бы порекомендовал, чтобы избежать этого вращающегося значка, вы переключаетесь с опроса на что-то вроде WebSockets (например, http://socket.io)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...