Merge pull request #23990 from owncloud/heartbeat-debounce

Debounce heartbeat ajax calls to lower the number of requests
remotes/origin/open-menus-on-hover
Morris Jobke 8 years ago
commit 6b66f2dfb4

@ -1499,9 +1499,15 @@ function initCore() {
interval = maxInterval;
}
var url = OC.generateUrl('/heartbeat');
setInterval(function(){
$.post(url);
}, interval * 1000);
var heartBeatTimeout = null;
var heartBeat = function() {
clearTimeout(heartBeatTimeout);
heartBeatTimeout = setInterval(function() {
$.post(url);
}, interval * 1000);
};
$(document).ajaxComplete(heartBeat);
heartBeat();
}
// session heartbeat (defaults to enabled)

@ -305,6 +305,7 @@ describe('Core base tests', function() {
counter++;
xhr.respond(200, {'Content-Type': 'application/json'}, '{}');
});
$(document).off('ajaxComplete'); // ignore previously registered heartbeats
});
afterEach(function() {
clock.restore();
@ -312,6 +313,7 @@ describe('Core base tests', function() {
window.oc_config = oldConfig;
routeStub.restore();
$(document).off('ajaxError');
$(document).off('ajaxComplete');
});
it('sends heartbeat half the session lifetime when heartbeat enabled', function() {
/* jshint camelcase: false */
@ -340,7 +342,7 @@ describe('Core base tests', function() {
clock.tick(20 * 1000);
expect(counter).toEqual(2);
});
it('does no send heartbeat when heartbeat disabled', function() {
it('does not send heartbeat when heartbeat disabled', function() {
/* jshint camelcase: false */
window.oc_config = {
session_keepalive: false,

Loading…
Cancel
Save