Webstatt.org - Community seit 2006 - 2012 (2024?)

Problem mit mehreren setInterval()

user-307
03.02.2008 19:25

Hi.
Ich betreiber jetzt seit über einem Jahr eine Seite die mit Ajax arbeitet.
Jetzt habe ich seit einiger Zeit das Problem das mein Apache immer wieder abgeschossen wird, da ich zu viele Anfragen vom Client auf einmal bekomme.
Habe mir das Problem dann mal mit dem Firefox Addon "FireBug" angesehen und festgestellt das die setInterval Funktionen etwas unregelmäßig aufgerufen werden! Teilweise kommen auf einmal auch zehn Aufrufe auf einmal rein.
Da ich das Problem noch nie hatte und auch seit einem Jahr nichts an der Seite oder an den Einstellungen meines Servers geändert habe, gehe ich mal davon aus das es ein Bug im Firefox 2.0.0.11 sein könnte. Hat jemand schonmal etwas davon gehört?

Um einmal zu verdeutlichen wie die Funktionen zeitlich verarbeitet werden hab ich mal ein Screenshot und den Quellcode der setInterval Aufrufe beigelegt.

var refreshUserInfoTime		= 120;	//Alle 2min.
var refreshShoutboxTime = 30; //Alle 30sek.
var refreshOnlineListTime = 60; //Alle 60sek.
var refreshNewsTime = 300; //Alle 5min.

var refreshUserInfo = window.setInterval("loadUserInfo()", refreshUserInfoTime*1000);
var refreshShoutbox = window.setInterval("loadShoutbox()", refreshShoutboxTime*1000);
var refreshOnlinelist = window.setInterval("loadOnlinelist()", refreshOnlineListTime*1000);
var refreshNews = window.setInterval("loadNews()", refreshNewsTime*1000);



(Die ersten drei Requests werden beim Aufruf der Seite geladen!)

.., Spark
Avatar user-162
03.02.2008 19:35

Was sagen denn die Serverlogs?

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
user-307
03.02.2008 20:31

In den Logs steht das zu viele Clientanfragen auf einmal gefordert wurden.

Es könnte vielleicht auch am XMLHttpRequest liegen. Habe gerade mal zwischen den Funktionen, welche die Inhalte neu laden (also loadUserInfo() usw.) ein alert() gesetzt. Dadurch wird das nächste setInterval ja erst abgearbeitet wenn die Alert-Box geschlossen wurde.
So wurde alles ordnungsgemäß ausgeführt, aber das ist ja nun auch nicht die Lösung des Problems lächeln

.., Spark