Ergebnis 61 bis 70 von 70
-
10-05-2012, 12:16 #61
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: meine animation Funktion bitte testen
Die meisten Browser rufen Timeouts nur ca. alle 20ms auf. Eben weil Browser viel mehr machen müssen wofür sie auch Zeit brauchen. JS Timeouts sollen nicht den kompletten Browser einfrieren können.
Und noch mal: Animationen haben nichts mit dem Timeout zu tun, sondern sind Resourcenfressende JS Dinge. D.h. deine Beobachtungen sind keine Konsequenz der Timeouts, sondern dass der Browser mit etwas beschäftigt ist und dann Prioritäten setzt. Dann kann es passieren, dass eine JS Bewegung in einem Hintergrundtab nicht ausgeführt wird, weil es (für den Browser) nicht wichtig ist, sondern er es ist damit beschäftigt ein andere Tab zu fokusieren oder was auch immer du siehst.
Übrigens eine Beobachtung die auch im Rahmen dieser Diskussion gemacht habe, wenn du die Timeouts in der Timerschleife mit einem Wert um die 20ms aufrufst, laufen viele paralelle Animationen flüssiger.
Das Threads bisher in JS nicht eingeflossen sind, liegt wohl daran, dass es damals als es entwickelt wurde, keine Notwendigkeit dafür gab und es auch nicht so einfach Betriebsystemübergreifen umsetztbar war.
-
10-05-2012, 12:51 #62
Foren-Gott
- registriert
- 19-05-2008
- Beiträge
- 5.667
AW: meine animation Funktion bitte testen
das verstehe ich nicht. was hat multifhreading damit zu tun, das timeouts und intervalle "so geregelt sind"?
natürlich könnte man js einfach multithreated machen, soll heissen timeouts, intervalle, alle events automatisch in einem eigenem thread laufen lassen, dann hast du aber ganz andere probleme, dann kann jeder thread durch jeden unterbrochen werden, dass musst du alles abfangen.
klingt doch logisch, wozu sollen die timeouts für einen tab, den ich mir sowieso nicht ansehe weiterlaufen?
nee, das ist ja gerade der vorteil, das der gerade ausgeführte code nicht unterbrochen wird. du kannst dich immer darauf verlassen, dass alles konsistent ist und musst nicht erst dafür sorgen.
-
10-05-2012, 12:55 #63
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: meine animation Funktion bitte testen
Das kann ich nicht nachvollziehen.
Ich hab mal mein Beispiel etwas umgebaut http://static.jstruebig.de/tween2.html
Die untere Animation dauert 5000ms und wenn sie fertig ist wird ein Event ausgelöst und die abgelaufene Zeit angezeigt. Auch wenn die Zeitdauer bis zu einer Sekunde über den 5Sek liegt, so wird die Animation aber an sich auch in einem Hintergrundtab ausgeführt.
-
10-05-2012, 13:13 #64
Foren-Gott
- registriert
- 19-05-2008
- Beiträge
- 5.667
AW: meine animation Funktion bitte testen
---------------------------
Fehler
---------------------------
Es ist ein Laufzeitfehler aufgetreten.
Möchten Sie den Debugmodus starten?
Zeile: 64
Fehler: Das Objekt unterstützt diese Eigenschaft oder Methode nicht.
---------------------------
Ja Nein
---------------------------
handler[name].forEach(function(item) {
-
10-05-2012, 13:23 #65
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: meine animation Funktion bitte testen
Kann der IE immer noch die Array Erweiterungen? Das gibt's doch nicht.
EDIT: https://developer.mozilla.org/en/Jav.../Array/forEach
OK, ab Version 9. Aber für solche Tests baue ich nicht Array.js ein, jeder normale Browser kennt das ja.
EDIT 2:ich hab's mal eingebaut, ist ja keine Arbeit.Geändert von ein schlauer (10-05-2012 um 13:26 Uhr)
-
10-05-2012, 13:24 #66
Foren-Gott
- registriert
- 19-05-2008
- Beiträge
- 5.667
-
10-05-2012, 13:35 #67
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
-
10-05-2012, 13:56 #68
Foren-Gott
- registriert
- 19-05-2008
- Beiträge
- 5.667
AW: meine animation Funktion bitte testen
im ie laufen die auch weiter
-
10-05-2012, 14:06 #69
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: meine animation Funktion bitte testen
wie weiter?
EDIT: Ach so, ich hab's verstanden.
-
01-06-2012, 23:55 #70
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: meine animation Funktion bitte testen
Mir hat das mit den Timern keine Ruhe gelassen und ich hab jetzt mal ein wenig gesucht. Man findet leider viele Quellen, die glauben das Timeout und Interval Threads erzeugen. Vielleicht kommt das daher, dass in diesem Artikel https://developer.mozilla.org/en/Code_snippets/Threads davon gesprochen wird, wie man Threads mit Timer simuliert. Aber es wird nicht gesagt, dass es Threads gibt.
Das JS immer single thread ist (Ausnahme: workers) wird in diesen Artikel beschrieben http://ejohn.org/blog/how-javascript-timers-work/
und http://javascript.info/tutorial/events-and-timing-depth
Ich denke damit sind alle Fragen bezüglich setTimeout beantwortet.
Ähnliche Themen
-
Bitte mal testen
Von René im Forum Site-CheckAntworten: 15Letzter Beitrag: 21-07-2006, 07:26 -
Bitte testen (StyleSwitcher)
Von dkdenz im Forum Script-CheckAntworten: 25Letzter Beitrag: 28-10-2004, 02:29 -
bitte testen
Von yoyo im Forum Site-CheckAntworten: 13Letzter Beitrag: 29-11-2002, 10:30 -
bitte testen!
Von rasputin im Forum Site-CheckAntworten: 22Letzter Beitrag: 10-11-2002, 17:01 -
bitte testen!
Von rasputin im Forum Serverseitige ProgrammierungAntworten: 0Letzter Beitrag: 30-10-2002, 21:17
Lesezeichen