首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CouchDB实时Ajax推送更新

CouchDB实时Ajax推送更新
EN

Stack Overflow用户
提问于 2011-06-30 06:23:30
回答 1查看 1.5K关注 0票数 5

我正在开发一个简单的PHP应用程序,使用CouchDB和PHP-on-Couch来访问一些视图,它运行得很好。我的下一步是引入Ajax,用数据库中的数据更新前端。

我知道您可以很容易地使用_changes通知来检测数据库上的任何更改。因此,这是一个index.html监视更改的问题(通过长轮询),它调用loadView.php来更新页面内容。

,首先,,我希望以上是正确的方法。

其次是,当浏览到index.html时,页面似乎从未完全加载(页面加载栏从未完成)。进行更改时,Firebug将显示预期的结果,但不会显示后续的任何更改。此时,页面似乎已经停止了无限加载。

到目前为止,我正在使用jQuery进行Ajax调用..。

代码语言:javascript
复制
$.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);
    });
});

知道这里会发生什么事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-01 02:55:25

我相信答案很简单。

长轮询查询是AJAX,保证只响应一次,比如获取HTML或图像。在等待更改时,可能需要一段时间才能做出响应;或者,如果已经发生更改,则可能会立即回复。

连续查询是COMET。它永远不会“完成”HTTP回复,它将永远保持连接打开(除了错误、崩溃等)。每次变化发生,放大,库奇发送给你。

换句话说,尝试将feed=longpoll更改为feed=continuous,看看这是否解决了问题。

作为背景,我建议使用CouchDB关于变更通知的权威指南,当然还有优秀的Couchbase单服务器更改API文档

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6530737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档