diff options
Diffstat (limited to 'itjs/timer.js')
-rw-r--r-- | itjs/timer.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/itjs/timer.js b/itjs/timer.js new file mode 100644 index 0000000..25ebbec --- /dev/null +++ b/itjs/timer.js @@ -0,0 +1,64 @@ +/** + * Start new timer + * Example: timer = new it_timer({ object:this, method:"timer", timeout:100}); + * + * @param p.object Object to call method in when timer fires + * @param p.method String with method name to call in object + * @param p.timeout Timeout in milliseconds + * @param p.continuous One-shot or continuous timer, default is one-shot + * @return timer id (deprecated, use method stop() instead) + */ +function it_timer(p) +{ + this.func = p.continuous ? "Interval" : "Timeout"; + return this.timer = window["set" + this.func](function() { p.object[p.method](p) }, p.timeout); +} + +it_timer.prototype = +{ + +stop: function() +{ + if (this.timer) + { + window["clear" + this.func](this.timer); + this.timer = null; + } +}/* NO COMMA */ + +} + +/** + * Global helper function to benchmark javascript + * @parameter label Message label like "start" or "end" + * @paramter print Whether to output timerlog via ED() and clear it (optional) + */ +function it_timerlog(label, print) +{ + if (window.it_timerlog_active) + { + var end = new Date().getTime(); + + if (typeof window.it_timernow != "undefined") + { + var start = window.it_timernow; + + if (window.it_timerlogmsg != "") + window.it_timerlogmsg += ", "; + + window.it_timerlogmsg += label + ":" + (end - start); + } + else + window.it_timerlogmsg = ""; + + window.it_timernow = end; + + if (print) + { + ED("timerlog: " + window.it_timerlogmsg); + window.it_timerlogmsg = ""; + } + } +} + +it_timerlog(""); // Set start time |