Citat:
Ursprungligen postat av
gadzoox
[...]
2. Scope, var tanken. Men jag har ju lite otur ibland nr jag tnker...
Dr knner jag igen mig! Skulle behva ha unit-tests (eller liknande) av mig sjlv emellant.
ONT:
Hr r en variant som kan skapa flera oberoende intervallhanterare om man vill:
Kod:
var ticker = (function () {
function Ticker(action, interval) {
this.action = action;
this.interval = interval;
this.ref = void 0;
}
Ticker.prototype = {
"constructor": Ticker
, "start": function () {
this.ref || (this.ref = setInterval(this.action, this.interval));
}
, "stop": function () {
this.ref && (this.ref = clearInterval(this.ref));
}
};
return {
"create": function (action, interval) {
return new Ticker(action, interval);
}
};
})();
En ticker skapas genom att man skickar in en funktion och ett intervall (i ms.). Sedan kan den startas och stoppas.
Kod:
function intervalHandler() {console.log(+new Date);}
var t = ticker.create(intervalHandler, 1000);
t.start();
// t.stop(); // senare..
// gr ocks bra att skapa flera andra:
var t2 = ticker.create(function () {console.log("t2");}, 5000)
, t3 = ticker.create(function () {console.log("t3");}, 2000);
t2.start();
t3.start();
Anvndning passande med gadzoox HTML fr att testa:
Kod:
var target = document.getElementById("output");
var timer = ticker.create(function () {
target.innerHTML += "tick ";
}, 300);
Knapparna startar och stoppar d allts tickern vid namn
timer.
/p