hi,
Obwohl der Rechenaufwand meiner Meinung nach relativ gering sein sollte, führt selbst das beiligende Beispiel mit relativ wenig animiertem Farbtext zu einer hohen Systemauslastung (AMD Sempron 2300+ bei 50%).
der reine javascriptseitige rechenaufwand dürfte in der tat so gering sein, dass er kaum ins gewicht fällt.
ich könnte mir zum Beispiel vorstellen, das der Browser nach jeder erfolgten Farbänderung (die ja Buchstabe für Buchstabe für den ganzen Text und das ca. 20mal pro Sekunde vorgenommen wird; bei beispielsweise 184 Buchstaben (beiligendes Beispiel) also 3680 mal/s) das ganze Fenster aktualisiert, was aber eigentlich nicht nötig wäre (reicht nach erfolgter Farbänderung des gesamten Textes, also 20 mal/s) oder etwas derartiges
so in etwa ist es.
der browser muss die seite, oder teile von ihr, neu "rendern", die darstellung neu aufbauen. und je nachdem, wie er das macht, dauerts halt schon mal länger.
da bleiben dir m.E. kaum andere möglichkeiten, als die intervalle zu vergrößern - 20 mal pro sekunde ist schon etwas heftig.
das wäre ja fast schon kinofilm- oder fernsehqualität, mit 25(?) einzelbildern pro sekunde. diese "qualität" muss eine animation m.E. nicht aufweisen - größere intervalle wären angebracht, etwas mehr "ruckeln" stört den betrachter nicht so sehr, als wenn du die performance seines systems in den keller treibst.
zumal, wenn es "nur" um eine animation der farbwerte geht(?) - wechsel in der farbe eines objektes werden vom besucherauge m.E. nicht so stark/schnell registriert, wie es bei einer bewegung des objektes der fall wäre.
oder ob evt. Javascript an sich sehr langsam und für etwas rechenintensievere Anwendungen nicht gedacht ist.
an die grenzen dessen, was javascript bei berechnungen zu leisten vermag, dürftest du hier sicher noch nicht gestoßen sein - wie du ganz richtig vermutest, dürfte die umsetzung der style-änderungen durch die rendering engine der "flaschenhals" sein.
P.S.: bisher nur mit IE 6.0 getestet
bin selber gerade an einer kleinen animation am feilen, bei der die relative position mehrerer kleiner objekte dynamisch mehrfach hintereinander zeitgesteuert verändert wird. und da schneidet der IE von der performance her am schlechtesten ab ...
gruß,
wahsaga
"Look, that's why there's rules, understand? So that you _think_ before you break 'em."