Performance AJAX- Chat

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Performance AJAX- Chat

    Ich habe ca 16 Datenquellen, welche ich alle paar Sekunden bearbeiten lasse.
    Zum Verständnis nehme ich aber erstmals nur 2 als Beispiel.
    Alle 5sec frage ich mit einem Ajax-request ab, wer noch alles im Chat-room ist.
    Jede Sekunde frage ich ab ob neue Nachrichten gekommen sind.
    Wäre es jetzt schneller, wenn ich jede Sekunde beides in einem Script abfrage oder ist es schneller, wenn ich einzelne verschiedene Abfragen per AJAX starte?
    Was ist schneller: Möglichst viele einzelne Requests oder besser alles in einem?

  • #2
    Re: Performance AJAX- Chat

    Lieber mit zwei Autos zum Supermarkt fahren, um eine Tüte Gummibärchen und eine Dose Cola zu kaufen - oder ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Zähl aber mal bitte trotzdem deine 16 Datenquellen auf.
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        OffTopic:
        ajax chats sucks. meine meinung. lieber vernünftige client/server technologien benutzen und eine sprache die dessen mächtig ist
        mfg

        Kommentar


        • #5
          Original geschrieben von hall
          OffTopic:
          ajax chats sucks. meine meinung. lieber vernünftige client/server technologien benutzen und eine sprache die dessen mächtig ist
          OffTopic:
          AJAX chats suck
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            Original geschrieben von unset
            OffTopic:
            AJAX chats suck
            saugen? ne das ist keine frage, eher eine feststellung.. aber danke für den kleinen lacher unset
            Zuletzt geändert von hall; 20.02.2007, 17:31.
            mfg

            Kommentar


            • #7
              Lieber mit zwei Autos zum Supermarkt fahren, um eine Tüte Gummibärchen und eine Dose Cola zu kaufen - oder ...?
              Kommt darauf an wie schnell die jeweiligen Autos sind und wer online ist müsste ich mit zwei anfragen nur alle 5 sec abfragen.

              alle 600 sec werden Users, welche nicht online sind gelöscht,
              alle 300 sec lasse ich alte Nachrichten aus der DB löschen,
              alle 10 sec werden private Dateien abgerufen,
              alle 5 sec zeige ich an wer online ist
              Momentan im selben Request:
              jede Sekunde lasse ich neue Nachrichten anzeigen,
              jede Sekunde aktualisiere ich die Zeit in der DB bei USER_ONLINE

              Bei meinem Beispiel sind es es 3 Räume also 3x5 + 1 Anfrage.

              Kommentar


              • #8
                Abfrageinterval von 1 Sekunde halte ich für einen absoluten Performance-Killer - alle 5 oder sogar eher 10 Sekunden hielte ich für angebrachter.
                Müssen die Nutzer halt mit leben, wenn sie ein Krüppel-Chatsystem nutzen, welches auf ungeeigneten Techniken aufsetzt.

                Und wenn die Intervall-Zeiten aller anderen Aktionen Vielfache der kürzesten darstellen - dann sehe ich da nur ein Interval mit einem Request, dem ggf. zusätzliche Informationen mit aufgepackt werden.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  AJAX chats suck
                  OffTopic:

                  Müsste aber so korrekt sein, weil das -s nur in der 3. Person Einzahl vorkommen dürfte



                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Ich weiß auch nicht, was dagegen spricht, alle paar Sekunden (5-10 ist wohl ein guter Wert), einen Request abzusetzen, der alle aktualisierungen holt. Evtl. kann man den Intervall dynamisch einstellen. Mehr User -> Öfter neue Daten -> Öfter aktualisieren. Und wenn man einen Text abschickt, sollte man natürlich direkt auch Aktualisierungen zurückbekommen.
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      Die wichtigsten Infos also alles was im Chat geschrieben wird kommt jede Sekunde.
                      Der Text den man abschickt wird nicht erst wieder aus der DB geholt sondern wird direkt eingetragen.

                      Kommentar


                      • #12
                        Original geschrieben von jmc
                        Die wichtigsten Infos also alles was im Chat geschrieben wird kommt jede Sekunde.
                        Es "kommt" nicht, sondern wird geholt.

                        Mag ja sein, dass du von dieser Art Performance-Harakiri nicht abzubringen bist - aber wengistens die restlichen Anfragen dann da mit reinzupacken, sollte ja wohl einleuchten.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Überleg mal was du brauchst...

                          Die Anzahl der User und der Text der seit dem letzten "poll" neu hinzugekommen ist.
                          Ändert sich die Anzahl der User, holst du in einem zweiten Request die Userliste neu.

                          Es ist wichtig die transportieren Datenmengen klein zu halten - sonst ist ein Ajax Chat wirklich ein Performance Killer...

                          Kommentar


                          • #14
                            Original geschrieben von prego
                            Es ist wichtig die transportieren Datenmengen klein zu halten
                            Richtig - warum dann
                            Ändert sich die Anzahl der User, holst du in einem zweiten Request die Userliste neu.
                            ?
                            Alleine schon der ganze HTTP- und TCP/IP-Kram bedeutet doch bei mehreren Requests einen ziemlichen "Overhead".

                            Also eher zusehen, dass die Zahl der Requests minimiert wird.

                            Z.B. braucht man die Userliste, wenn man sie einmal geholt hat, ja nicht bei jeder Änderung wieder komplett zu ziehen - sondern nur das Delta.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Das ist genau das, was ich meine. Bis jetzt speichere ich die User in einer SESSION und hole dann alle, welche neu sind mit einem Request. Gibt es da bessere Lösungen, und gibt es sowas wie ein Tutorial oder wo man lernen kann was genau die Performance mindert, sowie Lösungsansätze?

                              Vielen Dank

                              JMC

                              Kommentar

                              Lädt...
                              X