【问题标题】:How do I stop browser from 'waiting' for Node.js callback如何阻止浏览器“等待”Node.js 回调
【发布时间】:2011-06-02 23:44:13
【问题描述】:

我正在 Node.js 上创建一个 Express JS 应用程序,并实现了一个页面,该页面将根据 chat.nodejs.org (https://github.com/ry/node_chat) 回调实时更新。我已经按照 'node_chat' 中的方法对 t 进行了操作,如果从另一个浏览器进行更新,则页面会正确更新。唯一的问题是我似乎无法阻止浏览器(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.jshttps://github.com/ry/node_chat/blob/master/server.js 供参考。

特别是:

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

channel.query()

channel.appendMessage()

谢谢。

【问题讨论】:

  • 这是有意的。它旋转,因为它正在加载。使用 websocket。

标签: node.js express


【解决方案1】:

我建议您从轮询切换到 WebSockets 之类的东西(例如 http://socket.io

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    相关资源
    最近更新 更多