git-annex/static/longpolling.js

46 lines
955 B
JavaScript

connfails=0;
longpollcallbacks = $.Callbacks();
// Updates a div with a specified id, by polling an url,
// which should return a new div, with the same id.
function longpoll_div(url, divid, cont, fail) {
$.ajax({
'url': url,
'dataType': 'html',
'success': function(data, status, jqxhr) {
$('#' + divid).replaceWith(data);
longpollcallbacks.fire();
connfails=0;
cont();
},
'error': function(jqxhr, msg, e) {
connfails=connfails+1;
// It's normal to get 1 failure per longpolling
// element when navigating away from a page.
// So 12 allows up to 4 longpolling elements per
// page.
if (connfails > 12) {
fail();
}
else {
cont();
}
}
});
}
function longpoll_data(url, cont) {
$.ajax({
'url': url,
'dataType': 'text',
'success': function(data, status, jqxhr) {
connfails=0;
cont(1, data);
},
'error': function(jqxhr, msg, e) {
connfails=connfails+1;
cont(0);
}
});
}