我正在node.js上创建一个expressjs应用程序,并实现了一个页面,该页面将根据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);
}
});
};
应用程序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.appendMessage()
谢谢。
最佳答案
为了避免这个旋转图标,我建议您从轮询切换到websockets(例如http://socket.io)