Neznam podrobnosti u scriptu, ale klasicky a podle mne jediny spravny zpusob je kombinace invalidate a paint. Pri animaci se pouze vola invalidate a udalost paint dorazi az v okamziku, kdy prekresleni je opravdu potreba. Animace totiz neni jen malovani ale take jeji vypocet a nevim, zda je spravne aby se animace mimo dohled zastavovala.
Překreslování animací v Chrome 10 a 11
Jak se web stává animovanější a interaktivnější, mění se i nároky na prohlížeče. Na blogu vývojářů prohlížeče Chromium se objevil článek, který popisuje, jak vývojáři plánují ulehčit procesorům uživatelů. Když nějaký vývojář webové aplikace použije překreslování, často sáhne po funkcích setTimer() a setInterval(). Ty ale neberou ohled na to, jestli je překreslovaný prvek vidět a nebo jestli je vůbec na zobrazeném tabu.
Chrome a Chromium 10 přišly s novou funkcí webkitRequestAnimationFrame(), která slouží přesně k tomu, k čemu vývojáři webů používají setTimer() a setInterval(), ale bere ohled na fakt, jestli má uživatel tab s animací otevřený nebo ne. To sníží využití procesoru a zvýší výdrž na baterie. Podobná funkcionalita by měla přijít i do funkci setTimer() a setInterval(), ale až ve verzi 11.
Podrobně se tomuto tématu věnuje Martin Malý na zdrojak.root.cz.
Dále čtěte…
- Experimentální podpora Web Intents v Chrome 19 17. 5. 2012 8:11
- Nativní SSH pro Chrome OS 7. 5. 2012 9:04
- Optimalizace V8 v Google Chrome 19 3. 5. 2012 13:24
- WebRTC ve stabilním Chromu už tento rok 13. 4. 2012 14:04
- Zabezpečení uživatelských účtů na webových službách podle Googlu 20. 2. 2012 9:18
Re: Ulet
celé vláknoPřesně tak. Zdá se, že HTML5 kopíruje Flash i s jeho nedostatky. Ve Flashi vyřešili šetření výkonu podobným způsobem - pro neviditelné oblasti se sníží maximální FPS na 2, ovšem jelikož i kód "tiká" v rytmu FPS, zpomalí se i výpočty. Kolik problémů to přineslo mě jako tvůrci multiplayer her, ani nebudu popisovat.

