javascript – CouchDB _changes通知 – jquery.couch.js couch.app.db.changes()用法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – CouchDB _changes通知 – jquery.couch.js couch.app.db.changes()用法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1987字,纯文字阅读大概需要3分钟。
内容图文
我在CouchDB中进行复制,并希望在将更改推送到目标数据库时更新我的??UI.我已经阅读了_changes数据库API并在jquery.couch.js中找到了couch.app.db.changes()函数但是我无法弄清楚如何使用该函数.我假设我需要设置监听器,但我对Javascript的了解还不是它需要的.
不幸的是,http://www.couch.io/page/library-jquery-couch-js-database的文档甚至没有列出changes()函数.
有人可以帮助我,也让我知道选项参数是什么.
以下是有问题的函数的代码:
changes: function(since, options) {
options = options || {};
// set up the promise object within a closure for this handler
var timeout = 100, db = this, active = true,
listeners = [],
promise = {
onChange : function(fun) {
listeners.push(fun);
},
stop : function() {
active = false;
}
};
// call each listener when there is a change
function triggerListeners(resp) {
$.each(listeners, function() {
this(resp);
});
};
// when there is a change, call any listeners, then check for another change
options.success = function(resp) {
timeout = 100;
if (active) {
since = resp.last_seq;
triggerListeners(resp);
getChangesSince();
};
};
options.error = function() {
if (active) {
setTimeout(getChangesSince, timeout);
timeout = timeout * 2;
}
};
// actually make the changes request
function getChangesSince() {
var opts = $.extend({heartbeat : 10 * 1000}, options, {
feed : "longpoll",
since : since
});
ajax(
{url: db.uri + "_changes"+encodeOptions(opts)},
options,
"Error connecting to "+db.uri+"/_changes."
);
}
// start the first request
if (since) {
getChangesSince();
} else {
db.info({
success : function(info) {
since = info.update_seq;
getChangesSince();
}
});
}
return promise;
},
解决方法:
或者,您可以使用longpoll更改Feed.这是一个例子:
function bind_db_changes(database, callback) {
$.getJSON("/" + database, function(db) {
$.getJSON("/"+ database +
"/_changes?since="+ db.update_seq +"&heartbeat=10000&feed=longpoll",
function(changes) {
if($.isFunction(callback)){
callback.call(this, changes);
bind_db_changes(database, callback);
}
});
});
};
bind_db_changes("test", function(changes){
$('ul').append("<li>"+ changes.last_seq +"</li>");
});
内容总结
以上是互联网集市为您收集整理的javascript – CouchDB _changes通知 – jquery.couch.js couch.app.db.changes()用法全部内容,希望文章能够帮你解决javascript – CouchDB _changes通知 – jquery.couch.js couch.app.db.changes()用法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。