diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -10,7 +10,7 @@ 'conpherence.pkg.css' => '437d3b5a', 'conpherence.pkg.js' => '281b1a73', 'core.pkg.css' => 'b2ad82f4', - 'core.pkg.js' => '291eb50e', + 'core.pkg.js' => '941db947', 'darkconsole.pkg.js' => '061371d8', 'differential.pkg.css' => '90b30783', 'differential.pkg.js' => 'ddfeb49b', @@ -234,7 +234,7 @@ 'rsrc/externals/javelin/lib/DOM.js' => '805b806a', 'rsrc/externals/javelin/lib/History.js' => 'd4505101', 'rsrc/externals/javelin/lib/JSON.js' => '69adf288', - 'rsrc/externals/javelin/lib/Leader.js' => 'fea0eb47', + 'rsrc/externals/javelin/lib/Leader.js' => '7f243deb', 'rsrc/externals/javelin/lib/Mask.js' => '8a41885b', 'rsrc/externals/javelin/lib/Quicksand.js' => '6b8ef10b', 'rsrc/externals/javelin/lib/Request.js' => '94b750d2', @@ -722,7 +722,7 @@ 'javelin-history' => 'd4505101', 'javelin-install' => '05270951', 'javelin-json' => '69adf288', - 'javelin-leader' => 'fea0eb47', + 'javelin-leader' => '7f243deb', 'javelin-magical-init' => '3010e992', 'javelin-mask' => '8a41885b', 'javelin-quicksand' => '6b8ef10b', @@ -1503,6 +1503,9 @@ 'javelin-behavior', 'javelin-history', ), + '7f243deb' => array( + 'javelin-install', + ), '8018ee50' => array( 'javelin-install', 'javelin-util', @@ -2248,9 +2251,6 @@ 'javelin-view-visitor', 'javelin-util', ), - 'fea0eb47' => array( - 'javelin-install', - ), ), 'packages' => array( 'conpherence.pkg.css' => array( diff --git a/webroot/rsrc/externals/javelin/lib/Leader.js b/webroot/rsrc/externals/javelin/lib/Leader.js --- a/webroot/rsrc/externals/javelin/lib/Leader.js +++ b/webroot/rsrc/externals/javelin/lib/Leader.js @@ -33,6 +33,8 @@ events: ['onBecomeLeader', 'onReceiveBroadcast'], statics: { + _leaseDuration: 1500, + _interval: null, _timeout: null, _broadcastKey: 'JX.Leader.broadcast', @@ -130,8 +132,10 @@ // If we haven't installed an update timer yet, do so now. This will // renew our lease every 5 seconds, making sure we hold it until the // tab is closed. - if (!self._interval && lease.until > now + 10000) { - self._interval = window.setInterval(self._write, 5000); + var interval = parseInt(self._leaseDuration / 3, 10); + + if (!self._interval && lease.until > now + (interval * 2)) { + self._interval = window.setInterval(self._write, interval); } self._becomeLeader(); @@ -227,7 +231,7 @@ _write: function() { var self = JX.Leader; - var str = [self._id, ((+new Date()) + 16000)].join(':'); + var str = [self._id, ((+new Date()) + self._leaseDuration)].join(':'); window.localStorage.setItem(self._leaderKey, str); }, @@ -311,8 +315,8 @@ */ _usurp: function() { var self = JX.Leader; - self.call(JX.bag); self._timeout = null; + self.call(JX.bag); },