在阅读了类似的问题here后,我很好奇这是否完全可能?
我知道我可以通过 Package 一个setInterval函数(它重复调用check-for-changes函数)来使下面的代码工作,但是我更愿意使用连续轮询。
数据库在高峰期每分钟都会定期更新,但在非高峰期持续轮询数据库似乎是一种浪费...
$.getJSON('http://localhost:5984/db?callback=?', function(db) {
console.log(db.update_seq);
$.getJSON('http://localhost:5984/db/_changes?since='+db.update_seq+'&feed=continuous&callback=?', function(changes) {
console.log(changes);
});
});
Firebug显示当确实进行了更改时,会发生一些事情,但只返回null。
我也在同一个域上,从localhost/index.php调用一个页面
2条答案
按热度按时间czq61nw11#
您可以采用自适应策略,而不是使用连续或长时间轮询。可能以1分钟的间隔开始。如果没有更新,则最多2分钟,然后3、4、5等。如果有一些更新,则可以修改间隔以反映到下一次预期更新的时间。
基本上,这一切都归结为它是多么重要,你实际上得到的更新通知,在近实时和多大的延迟,你愿意处理。
xdnvmnnf2#
下面是一个Colin Ross的可接受答案的具体示例:
此示例源代码来自现已归档的博客:https://web.archive.org/web/20170821130003/http://schinckel.net/2012/01/22/jquery-long-poll-for-couchdb-changes./