setInterval considered harmful

This commit is contained in:
James Campos 2011-08-12 03:46:04 -07:00
parent b5794d028b
commit 1e1da77098
2 changed files with 12 additions and 9 deletions

View File

@ -1190,12 +1190,13 @@
submit.value = cooldown.duration; submit.value = cooldown.duration;
submit.disabled = true; submit.disabled = true;
} }
return cooldown.interval = window.setInterval(cooldown.cb, 1000); return setTimeout(cooldown.cb, 1000);
}, },
cb: function() { cb: function() {
var submit, submits, _i, _j, _len, _len2, _results; var submit, submits, _i, _j, _len, _len2, _results;
submits = $$('#com_submit'); submits = $$('#com_submit');
if (--cooldown.duration > 0) { if (--cooldown.duration > 0) {
setTimeout(cooldown.cb, 1000);
_results = []; _results = [];
for (_i = 0, _len = submits.length; _i < _len; _i++) { for (_i = 0, _len = submits.length; _i < _len; _i++) {
submit = submits[_i]; submit = submits[_i];
@ -1203,7 +1204,6 @@
} }
return _results; return _results;
} else { } else {
window.clearInterval(cooldown.interval);
for (_j = 0, _len2 = submits.length; _j < _len2; _j++) { for (_j = 0, _len2 = submits.length; _j < _len2; _j++) {
submit = submits[_j]; submit = submits[_j];
submit.disabled = false; submit.disabled = false;
@ -1702,9 +1702,9 @@
}, },
autoUpdate: function() { autoUpdate: function() {
if (this.checked) { if (this.checked) {
return updater.intervalID = window.setInterval(updater.timeout, 1000); return updater.timeoutID = setTimeout(updater.timeout, 1000);
} else { } else {
return window.clearInterval(updater.intervalID); return clearTimeout(updater.timeoutID);
} }
}, },
update: function() { update: function() {
@ -1764,8 +1764,9 @@
} }
updater.timer.textContent = n; updater.timer.textContent = n;
if (n === 0) { if (n === 0) {
return updater.update(); updater.update();
} }
return updater.timeoutID = setTimeout(updater.timeout, 1000);
}, },
updateNow: function() { updateNow: function() {
updater.timer.textContent = 0; updater.timer.textContent = 0;

View File

@ -942,15 +942,15 @@ cooldown =
for submit in $$ '#com_submit' for submit in $$ '#com_submit'
submit.value = cooldown.duration submit.value = cooldown.duration
submit.disabled = true submit.disabled = true
cooldown.interval = window.setInterval cooldown.cb, 1000 setTimeout cooldown.cb, 1000
cb: -> cb: ->
submits = $$ '#com_submit' submits = $$ '#com_submit'
if --cooldown.duration > 0 if --cooldown.duration > 0
setTimeout cooldown.cb, 1000
for submit in submits for submit in submits
submit.value = cooldown.duration submit.value = cooldown.duration
else else
window.clearInterval cooldown.interval
for submit in submits for submit in submits
submit.disabled = false submit.disabled = false
submit.value = 'Submit' submit.value = 'Submit'
@ -1398,9 +1398,9 @@ updater =
$.hide updater.timer $.hide updater.timer
autoUpdate: -> autoUpdate: ->
if @checked if @checked
updater.intervalID = window.setInterval updater.timeout, 1000 updater.timeoutID = setTimeout updater.timeout, 1000
else else
window.clearInterval updater.intervalID clearTimeout updater.timeoutID
update: -> update: ->
if @status is 404 if @status is 404
updater.timer.textContent = '' updater.timer.textContent = ''
@ -1455,6 +1455,8 @@ updater =
if n is 0 if n is 0
updater.update() updater.update()
updater.timeoutID = setTimeout updater.timeout, 1000
updateNow: -> updateNow: ->
updater.timer.textContent = 0 updater.timer.textContent = 0
updater.update() updater.update()