Content-Type: text/plain; charset="UTF-8" Message-ID: <2797316.uecmfydTqv@PointedEars.de> From: Thomas 'PointedEars' Lahn Reply-To: Thomas 'PointedEars' Lahn Organization: PointedEars Software (PES) Date: Sun, 22 Sep 2013 12:42:41 +0200 User-Agent: KNode/4.10.5 Content-Transfer-Encoding: 8Bit X-Face: %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&. <434079c0-5e5c-4aa0-be66-0ac5ec77e50e@googlegroups.com> MIME-Version: 1.0 Lines: 65 NNTP-Posting-Date: 22 Sep 2013 12:43:10 CEST NNTP-Posting-Host: 43421a8d.newsspool2.arcor-online.net X-Trace: DXC=7G8\@1;cAE]=>bdbdS?M0YA9EHlD;3YcR4Fo<]lROoRQ8kF7CUkX X-Complaints-To: usenet-abuse@arcor.de Path: csiph.com!usenet.pasdenom.info!news.franciliens.net!feed.ac-versailles.fr!feeder1-2.proxad.net!proxad.net!feeder2-2.proxad.net!newsfeed.arcor.de!newsspool3.arcor-online.net!news.arcor.de.POSTED!not-for-mail Xref: csiph.com comp.lang.javascript:21410 Stefan Weiss wrote: > On 2013-09-22 05:14, jonas.thornvall@gmail.com wrote: >> Den lördagen den 21:e september 2013 kl. 15:52:06 UTC+2 skrev Evertjan.: >>> jonas.thornval wrote on 21 sep 2013 in comp.lang.javascript: >>> >>> > function initanime() >>> > { >>> > size = 0; >>> > start = 0; >>> > multip = + 1; >>> > run = 1; >>> > refresh = setInterval(draw, 0); >>> […] >> 2 an interval of 0 ms is not an interval. > > It's not? Next you're going to tell me 0 is not a percentage. > http://tinyurl.com/zeroperc Sarcasm aside, it is unwise to use 0 (milliseconds) for the second argument of window.setInterval(…) (which should be written so). Normalization to a minimum sensible value may or may not occur. If it does not occur, there will be high CPU load slowing down the browser and other applications because operations cannot be performed fast enough and intervals will overlap. This has caused performance problems with Internet Explorer. A value of 50 (ms) has proven to be a sensible minimum value for the majority of client applications, however the minimum normalization value is 10 (ms) in Mozilla for 32-bit systems. That said, window.setInterval() should be avoided in the first place (at least for short interval lengths, like for animations and transitions, should that still be considered necessary in view of CSS3) in favor of window.setTimeout() which is passed a function that calls window.setTimeout() again: var t = null; var f = function () { if (t !== null) { window.clearTimeout(t); t = null; } /* do something every 50 milliseconds */ t = window.setTimeout(f, 50); }; f(); The advantage of the latter is that timeouts do not overlap if a function call takes longer than the interval length. This reduces CPU load as there will be only one timeout-triggered function call processed at the same time (in the same tab/browser). I have posted a breakdown of this, with a reference to Mozilla code as an example, a while ago; you may still find it by searching for “setTimeout”, “setInterval”, and my (nick)name. -- PointedEars Twitter: @PointedEars2 Please do not Cc: me. / Bitte keine Kopien per E-Mail.