J'ai une réplication fonctionnant dans CouchDB et je veux mettre à jour mon interface utilisateur lorsque les changements sont poussés vers la base de données cible. J'ai lu à propos de l'API de la base de données _changes et j'ai trouvé la fonction couch.app.db.changes() dans jquery.couch.js. Cependant, je ne sais pas comment utiliser cette fonction. Je suppose que j'ai besoin de configurer l'écoute, mais ma connaissance de Javascript n'est pas encore ce qu'elle doit être.CouchDB _changes notifications - jquery.couch.js couch.app.db.changes() utilisation
Malheureusement, les documents de http://www.couch.io/page/library-jquery-couch-js-database ne répertorient même pas la fonction changes().
Quelqu'un peut-il m'aider ici et aussi me faire savoir à quoi servent les options param.
Voici le code de la fonction en question:
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;
},
Merci koleto, cela a fonctionné et avec d'autres travaux que j'ai faits, j'ai été en mesure de travailler sur la façon d'utiliser la fonction couch.app.db.changes(). Désolé pour la réponse tardive mais je n'étais pas au courant qu'il y avait une autre réponse affichée. – nevf