Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CouchDB实时Ajax推送更新_Php_Jquery_Ajax_Couchdb - Fatal编程技术网

Php CouchDB实时Ajax推送更新

Php CouchDB实时Ajax推送更新,php,jquery,ajax,couchdb,Php,Jquery,Ajax,Couchdb,我正在开发一个简单的PHP应用程序,使用CouchDB访问一些视图,效果非常好。我的下一步是引入Ajax,用数据库中的数据更新前端 我知道您可以使用_changes通知轻松地检测对数据库所做的任何更改。因此,这是index.html监视更改(通过长轮询)的问题,它调用loadView.php来更新页面内容 首先,我希望上述方法是正确的 其次浏览index.html时,页面似乎从未完全加载(页面加载栏从未完成)。当进行更改时,Firebug会显示预期的结果,但不会显示任何后续更改。此时,页面似乎停

我正在开发一个简单的PHP应用程序,使用CouchDB访问一些视图,效果非常好。我的下一步是引入Ajax,用数据库中的数据更新前端

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

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

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

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

$.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);
    });
});

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

我相信答案很简单

longpoll查询是AJAX,保证只响应一次,就像获取HTML或图像一样。当它等待改变时,它可能需要一点时间来做出响应;或者,如果已经发生了更改,它可能会立即回复

连续查询是COMET。它永远不会“完成”HTTP应答,它将永远保持连接打开(错误、崩溃等除外)。每次发生变化,zoom,Coach都会将其发送给您

换句话说,试着把feed=longpoll改为feed=continuous,看看是否能解决这个问题


作为背景资料,我推荐CouchDB关于优秀Couchbase单服务器的权威指南。

首先,您是正确的!哈哈,太棒了!把它放在比我更了解的人的鼻子底下总是好的!这很有道理,我应该知道得更清楚!