kostenloser Webspace werbefrei: lima-city


Probleme mit Ajax, zu hoher Ressourcenverbrauch (Client)

lima-cityForumProgrammiersprachenSonstige Programmiersprachen

  1. Autor dieses Themas

    virtual2

    Kostenloser Webspace von virtual2

    virtual2 hat kostenlosen Webspace.

    Hallo,

    ich habe mir einen kleinen Ajax Chat mit Ajax, PHP & MySQL geschrieben.

    Derzeitig braucht der Chat aber rund 80% CPU Load bei den Clients.

    An den Prozessoren der Clients kann es nicht liegen, da wir es auch schon auf einem i7er mit rund 4x 4Ghz ausprobiert haben.

    Verwendet wurde der Firefox.

    Genutzt wird die neuste JQuery Bibliothek, um den refresh auszuführen.

    Hier mal der Code:

    <script src="/js/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
         $(document).ready(function() {
           $("#refresh").load("chat.php");
           var refreshId = setInterval(function() {
              $("#refresh").load('chat.php?' + 1*new Date());
           }, 5000);
        });
    </script>


    Weiß möglicherweise wo der Fehler liegt, dass soviele Ressourcen verbraten werden?

    LG Joseph
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Der Hauptgrund wird wohl bei setTimeoot und setinterval liegen.
    Du wirst ja sicher noch mehr code als diesen haben da Du ja auch die Chat-eingabe absenden willst.
    Ich sag's gleich, ich kenne mich in jquery nicht aus aber javascript bleibt es immer noch.

    Üblicherweise solltest Du versuchen (nicht absolut vermeiden aber versuchen halt), auf setinterval zu verzichten.
    Grund ist das es leicht mal passieren kann das sich die ganzen intervalle "hochschaukeln".
    Also ein Verweis auf eine Funktion mit setTimeout die wiederum nachdem sie ihren Job getan hat sich selber mit setinterval aufruft ist da sicherer.

    Eine Frage: wird die Funktion nach .ready nur einmal aufgerufen (am start)
    oder in Intervallen.
    Wenn sie immer wieder aufgerufen wird , wäre das jedenfalls eine Erklärung.
    Weil sie dann ja wieder jedesmal einen neuen intervall startet, wodurch sich die Intervalle schnell multiplizieren würden....
  4. Autor dieses Themas

    virtual2

    Kostenloser Webspace von virtual2

    virtual2 hat kostenlosen Webspace.

    Nein, die wird nur einmalig aufgerufen.

    Ich werde mir das mal mit den vielen Funktions ansehen.

    LG Joseph
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!