spark: Problem mit mehreren setInterval()

Hallo.

Ist es bekannt das die setInterval() Funktion Probleme verursacht wenn man mehrere davon parallel laufen lässt?
Ich habe vier Funktionen die ich immer wieder aktualisieren lasse.

var refreshUserInfo = window.setInterval("loadUserInfo()", 300*1000);
var refreshShoutbox = window.setInterval("loadShoutbox()", 30*1000);
var refreshOnlinelist = window.setInterval("loadOnlinelist()", 60*1000);
var refreshNews  = window.setInterval("loadNews()", 300*1000);

Mein Problem ist jetzt, dass die setInterval() hin und wieder gleich zwei mal aufgerufen werden und ihren nächsten Einsatz dann unterlassen. Es scheint also ein Zeitproblem zu sein.
Um das einmal zu verdeutlichen:

1. loadShoutbox() 0:30
2. loadShoutbox() 1:00
3. loadShoutbox() 1:00 « FEHLER
4. loadOnlineList() 1:00
[loadShoutbox() 1:30 wird nicht mehr ausgeführt]
5. loadShoutbox() 2:00
6. loadOnlineList() 2:00
7. loadShoutbox() 2:30

Ein BISSCHEN besser wird es wenn ich die Millisekunden der Funktion etwas anpasse.

var refreshUserInfo = window.setInterval("loadUserInfo()", 300*1005);
var refreshShoutbox = window.setInterval("loadShoutbox()", 30*1010);
var refreshOnlinelist = window.setInterval("loadOnlinelist()", 60*1015);
var refreshNews  = window.setInterval("loadNews()", 300*1020);

Ich benutze den Firefox Version 2.0.0.12.
Brauche dringend eine Lösung. Denn durch diesen Fehler werden manchmal so viele Anfragen auf einmal an den Server gesendet, dass der gesamt Apache abstürzt, bzw. dicht macht.

  1. Ist es bekannt das die setInterval() Funktion Probleme verursacht wenn man mehrere davon parallel laufen lässt?

    Nicht das ich wüßte.

    Ich habe vier Funktionen die ich immer wieder aktualisieren lasse.

    var refreshUserInfo = window.setInterval("loadUserInfo()", 300*1000);
    var refreshShoutbox = window.setInterval("loadShoutbox()", 30*1000);
    var refreshOnlinelist = window.setInterval("loadOnlinelist()", 60*1000);
    var refreshNews  = window.setInterval("loadNews()", 300*1000);

    Mein Problem ist jetzt, dass die setInterval() hin und wieder gleich zwei mal aufgerufen werden und ihren nächsten Einsatz dann unterlassen. Es scheint also ein Zeitproblem zu sein.

    Kann es sein, dass die Funktionen länger brauchen?
    Der Interval wartet ja nicht während einer Ausführung

    Hier mal ein Link wo das erklärt wird:
    http://ejohn.org/blog/how-javascript-timers-work/

    Struppi.

    1. Ist es bekannt das die setInterval() Funktion Probleme verursacht wenn man mehrere davon parallel laufen lässt?

      Nicht das ich wüßte.

      Ich habe vier Funktionen die ich immer wieder aktualisieren lasse.

      var refreshUserInfo = window.setInterval("loadUserInfo()", 300*1000);
      var refreshShoutbox = window.setInterval("loadShoutbox()", 30*1000);
      var refreshOnlinelist = window.setInterval("loadOnlinelist()", 60*1000);
      var refreshNews  = window.setInterval("loadNews()", 300*1000);

      Mein Problem ist jetzt, dass die setInterval() hin und wieder gleich zwei mal aufgerufen werden und ihren nächsten Einsatz dann unterlassen. Es scheint also ein Zeitproblem zu sein.

      Kann es sein, dass die Funktionen länger brauchen?
      Der Interval wartet ja nicht während einer Ausführung

      Nein, die Funktionen sind alle nach ein bis zwei Sekunden abgearbeitet.

      Hier mal ein Link wo das erklärt wird:
      http://ejohn.org/blog/how-javascript-timers-work/

      Struppi.

      Ich habe mal ein kleines Script erstellt, welches das Problem nochmal deutlich darstellt. Die dick gedruckten Zeilen sind fehlerhafte Aufrufe. Wenn man die Werte der Aktualisierungen verkleinert oder z.B. alle auf 30 & 60 Sekunden stellt, wird es immer extremer.

      http://mitglied.lycos.de/money666/tmp/setinterval.html

      Mit dem InternetExplorer scheint das Problem übrigens nicht aufzutreten!! Zumindest ist mir da keine Unregelmäßigkeit aufgefallen.