Fix and recomprehense the setInterval function

This commit is contained in:
Zixaphir 2013-12-16 20:07:27 -07:00
parent 7958371a24
commit 75b7804eda
3 changed files with 43 additions and 25 deletions

View File

@ -9010,15 +9010,19 @@
} }
}, },
setInterval: function() { setInterval: function() {
var cur, i, j; var cur, i, j, limit;
i = ThreadUpdater.interval; i = ThreadUpdater.interval + 1;
j = (cur = ThreadUpdater.outdateCount < 10) ? cur : 10; if (Conf['Optional Increase']) {
if (!d.hidden) { cur = ThreadUpdater.outdateCount || 1;
j = j < 7 ? j : 7; limit = d.hidden ? 7 : 10;
j = cur <= limit ? cur : limit;
cur = ((i * 0.1).floor() || 1) * j * j;
ThreadUpdater.seconds = cur > i ? cur <= 300 ? cur : 300 : i;
} else {
ThreadUpdater.seconds = i;
} }
ThreadUpdater.seconds = Conf['Optional Increase'] ? (cur = [0, 5, 10, 15, 20, 30, 60, 90, 120, 240, 300][j] > i) ? cur : i : i; ThreadUpdater.set('timer', ThreadUpdater.seconds);
ThreadUpdater.set('timer', ThreadUpdater.seconds++);
return ThreadUpdater.count(true); return ThreadUpdater.count(true);
}, },
intervalShortcut: function() { intervalShortcut: function() {

View File

@ -8995,15 +8995,19 @@
} }
}, },
setInterval: function() { setInterval: function() {
var cur, i, j; var cur, i, j, limit;
i = ThreadUpdater.interval; i = ThreadUpdater.interval + 1;
j = (cur = ThreadUpdater.outdateCount < 10) ? cur : 10; if (Conf['Optional Increase']) {
if (!d.hidden) { cur = ThreadUpdater.outdateCount || 1;
j = j < 7 ? j : 7; limit = d.hidden ? 7 : 10;
j = cur <= limit ? cur : limit;
cur = ((i * 0.1).floor() || 1) * j * j;
ThreadUpdater.seconds = cur > i ? cur <= 300 ? cur : 300 : i;
} else {
ThreadUpdater.seconds = i;
} }
ThreadUpdater.seconds = Conf['Optional Increase'] ? (cur = [0, 5, 10, 15, 20, 30, 60, 90, 120, 240, 300][j] > i) ? cur : i : i; ThreadUpdater.set('timer', ThreadUpdater.seconds);
ThreadUpdater.set('timer', ThreadUpdater.seconds++);
return ThreadUpdater.count(true); return ThreadUpdater.count(true);
}, },
intervalShortcut: function() { intervalShortcut: function() {

View File

@ -148,18 +148,28 @@ ThreadUpdater =
ThreadUpdater.cb.checkpost() ThreadUpdater.cb.checkpost()
setInterval: -> setInterval: ->
i = ThreadUpdater.interval i = ThreadUpdater.interval + 1
# Math.min/max is provably slow: http://jsperf.com/math-s-min-max-vs-homemade/5
j = if cur = ThreadUpdater.outdateCount < 10 then cur else 10 if Conf['Optional Increase']
unless d.hidden
# Lower the max refresh rate limit on visible tabs. # Lower the max refresh rate limit on visible tabs.
j = if j < 7 then j else 7 cur = ThreadUpdater.outdateCount or 1
ThreadUpdater.seconds = limit = if d.hidden then 7 else 10
if Conf['Optional Increase'] j = if cur <= limit then cur else limit
if cur = [0, 5, 10, 15, 20, 30, 60, 90, 120, 240, 300][j] > i then cur else i
else # 1 second to 100, 30 to 300.
i cur = ((i * 0.1).floor() or 1) * j * j
ThreadUpdater.set 'timer', ThreadUpdater.seconds++ ThreadUpdater.seconds =
if cur > i
if cur <= 300
cur
else
300
else
i
else
ThreadUpdater.seconds = i
ThreadUpdater.set 'timer', ThreadUpdater.seconds
ThreadUpdater.count true ThreadUpdater.count true
intervalShortcut: -> intervalShortcut: ->