我正在 Node.js 上创建一个 Express JS 应用程序,并实现了一个页面,该页面将根据 chat.nodejs.org (https://github.com/ry/node_chat) 回调实时更新。我已经按照“node_chat”中的方法进行操作,如果从另一个浏览器进行更新,页面会正确更新。唯一的问题是我似乎无法阻止浏览器 (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);
}
});
};
应用程序.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供引用。
特别是:
fu.get("/recv", function (req, res) {...}
和
channel 查询()
和
channel.appendMessage()
谢谢。
最佳答案
我建议您从轮询切换到类似 WebSockets 的方式(例如 http://socket.io)
关于node.js - 如何从 'waiting' 停止浏览器以进行 Node.js 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6221605/