Mr.asdfg: Jquery

Hallo,

derzeit nutzt ich jquery zum aktualisieren von dateien....

doch das lastet Start auf dem Server :(, wie kann ich es den machen das es nicht so stark lastet wie z.b. knuddels chat :D ??

  1. Hallo,

    derzeit nutzt ich jquery zum aktualisieren von Dateien....

    doch das lastet Start auf dem Server :(, wie kann ich es den machen das es nicht so stark lastet wie z.b. knuddels chat :D ??

    weiß keiner eine Lösung... kein tipp.... oder ähnliches ich brauche es wirklich :( bitte

    1. Hi,

      derzeit nutzt ich jquery zum aktualisieren von Dateien....

      doch das lastet Start auf dem Server :(, wie kann ich es den machen das es nicht so stark lastet wie z.b. knuddels chat :D ??

      weiß keiner eine Lösung...

      Niemand kann eine "Lösung" liefern zu einem Problem, welches noch nicht mal ansatzweise vernünftig und nachvollziehbar beschrieben wurde.
      </hilfe/charta.htm#tipps-fuer-fragende>

      kein tipp.... oder ähnliches ich brauche es wirklich :( bitte

      Wenn der Umfang oder die Frequenz der Aktualisierungen sich als zu starke Belastung des Servers herausgestellt haben - dann reduziere Umfang oder Frequenz, oder beide.

      MfG ChrisB

      --
      Light travels faster than sound - that's why most people appear bright until you hear them speak.
      1. Wenn der Umfang oder die Frequenz der Aktualisierungen sich als zu starke Belastung des Servers herausgestellt haben - dann reduziere Umfang oder Frequenz, oder beide.

        MfG ChrisB

        entschuldige.

        Also mein Problem ist folgendes, ich baue ein Spiel wo Sachen sich immer automatisch neu laden per jquery. Dies ist leider sehr serverauslastung jedoch wichtig da sich wie wert immer aktualisieren (jede 19s.). Aus dem Grund suche ich eine Funktion die es mir nicht so schwer macht. Im knuddels Chat z.b. wird ja auch dauernhaft die Seite akk. so das der neue Text dort steht, wie bekomme ich das hin ?

        1. Hi,

          Dies ist leider sehr serverauslastung jedoch wichtig da sich wie wert immer aktualisieren (jede 19s.).

          wenn Du die Serverlast reduzieren willst, musst Du das Intervall erhöhen - beispielsweise auf 30 Sekunden, oder Deine serverseitigen Techniken optimieren, oder beides. Bist Du tatsächlich der Ansicht, dass durch die Clientseite die Last erzeugt wird, obwohl das Intervall gut gewählt wird, dann baust Du schlichtweg Bockmist mit den Requests. Da Du absolut nichts über diese sagst, ist an dieser Stelle keine weitere Hilfe möglich - ich unterstelle aber auch, dass es ziemlich aus der Luft gegriffen ist, beim Request erhebliches Optimierungspotenzial zu haben.

          Aus dem Grund suche ich eine Funktion die es mir nicht so schwer macht.

          Für die serverseitige Last ist der Server verantwortlich. Der Client feuert lediglich Requests ab. Eine JavaScript-Funktion kann hier nicht wirklich helfen.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. es geht darum die Rohstoffe, diese werden ja immer mehr und da man nicht immer die Seite neuladet sondern per jquery der Inhalt in eine div platziert wird muss ich ja auf einem anderen weg die Rohstoffe akkt. lassen und da ist jquery Anmbesten....

            nun ich habe mich mal etwas informiert und ich frage mich gibt es etwas was nur akkt. wen ein neuer wert vorhanden is ???

            und immer noch eine offene frage.... macht knuddels das auch mit jquery ??

            1. Hi,

              [...] die Rohstoffe akkt. lassen [...]

              die Abkürzung "akkt." benutzt Du mehrfach. Ich würde hier eigentlich das Wort "aktualisieren" vermuten, aber darin kommt nur ein "k" vor. Bitte beschränke Dich auf Abkürzungen, die etabliert sind - im Wesentlichen sind das diejenigen, die im Duden zu finden sind.

              und da ist jquery Anmbesten....

              jQuery nützt Dir kein Stück, wenn Du Informationen erfinden willst, die einer Datenquelle entsprechen sollen, ohne aber eben diese Datenquelle zu benutzen.

              nun ich habe mich mal etwas informiert und ich frage mich gibt es etwas was nur akkt. wen ein neuer wert vorhanden is ???

              HTTP ist verbindungslos und arbeitet nach dem Pull-Verfahren, das kann auch jQuery nicht ändern.

              und immer noch eine offene frage.... macht knuddels das auch mit jquery ??

              Dies kannst Du im Quellcode jenes ominösen "knuddels" machen, wer oder was immer das auch sein mag. In keinem Fall wird jQuery aber Magie bewirken und beispielsweise HTTP in einer Weise verwenden können, die mit HTTP nicht möglich ist. Wenn der Client eine Information vom Server haben will, muss der Client den Server fragen - kein Framework der Welt kann hieran etwas ändern.

              Cheatah

              --
              X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
              1. Hi!

                HTTP ist verbindungslos

                Es ist _zustands_los - diese Unterscheidung ist wichtig, wenn es auch hier oft weg geredet wird.

                off:PP

                --
                "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                1. Hi,

                  »» HTTP ist verbindungslos
                  Es ist _zustands_los - diese Unterscheidung ist wichtig,

                  richtig, aber sie muss nicht bei jeder Gelegenheit erwähnt werden. Die Zustandslosigkeit ist hier nicht von Belang, die Verbindungslosigkeit schon. Und nein, Keep-Alive macht HTTP noch lange nicht zu einem verbindungsbehafteten Protokoll.

                  wenn es auch hier oft weg geredet wird.

                  Ist mir noch nicht aufgefallen, wann zum Beispiel?

                  Cheatah

                  --
                  X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                  X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                  X-Will-Answer-Email: No
                  X-Please-Search-Archive-First: Absolutely Yes
            2. Hi,

              es geht darum die Rohstoffe, diese werden ja immer mehr und da man nicht immer die Seite neuladet sondern per jquery der Inhalt in eine div platziert wird muss ich ja auf einem anderen weg die Rohstoffe akkt. lassen und da ist jquery Anmbesten....

              weisst Du eigentlich selber was Du tust?
              Zunächst mal: die Daten holst Du per _ajax_, und jQuery macht nichts anders als ajax-request im komfortable Methoden zu kapsel um die geholten Daten ins DOM zu integrieren.

              Wenn das Deinen Server überlastet gibt es u. a. diese Möglichkeiten: entweder Dein Server ist so schmalbrüstig, dass alleine die Requests ihn in die Knie zwingen, oder aber das Script, dass die Requests (serverseitig) abarbeitet, hat viel zu tun und muss z. B. zahlreiche Datenbankabfragen tätigen, die den Response verzögern.

              Ersteres ist pp (persönliches Pech), letzteres lässt sich möglicherweise durch ein geschicktes Caching der Daten zur Vermeidung exessiver Datenbankabfragen optimieren. Das hat aber nichts mehr mit dem Client und jQuery zu tun.

              Ansonsten solltest Du sehr selbstkritisch Deine bisherigen Problembeschreibung ansehen. Solange Du nicht willens bist, konkrete Informationen zu liefern, sondern Dich auf unrelevantes Geschwafel wie "es geht darum die Rohstoffe, diese werden ja immer mehr und da man nicht immer die Seite neuladet..." beschränkst, ist Dir nicht zu helfen.

              Gruesse, Joachim

              --
              Am Ende wird alles gut.
            3. es geht darum die Rohstoffe, diese werden ja immer mehr und da man nicht immer die Seite neuladet sondern per jquery der Inhalt in eine div platziert wird muss ich ja auf einem anderen weg die Rohstoffe akkt. lassen und da ist jquery Anmbesten....

              Wie gesagt: Wenn die Zuwachsrate vorhersehbar ist, kannst du das auch clientseitig mit JS erledigen und musst keine Serveranfrage stellen.

              nun ich habe mich mal etwas informiert und ich frage mich gibt es etwas was nur akkt. wen ein neuer wert vorhanden is ???

              Jein. Solche Fragen solltest du umgehen, weil sie technisch nur mit großem Aufwand lösbar sind.
              Unter dem Schlagwort »Comet« werden verschiedene Techniken zusammengefasst, mit denen eine Art Server-Push simuliert wird, was bei HTTP eigentlich nicht möglich ist.
              Bei einer Sache wird dir Comet allerdings nicht weiterhelfen: Bei der Reduzierung der Serverlast. Die Server-Software bekommt dadurch eher viel mehr zu tun und muss mehr gleichzeitig offene Verbindungen verwalten (d.h. mehr Serverprozesse, mehr Serverbelastung).

              und immer noch eine offene frage.... macht knuddels das auch mit jquery ??

              Knuddels verwendet kein XMLHttpRequest (»Ajax«) sondern ein http://de.selfhtml.org/intro/technologien/java.htm@title=Java-Applet.
              Das ist nochmal eine ganz andere Technik, die mit JavaScript nichts zu tun hat.

              Mathias

              1. Wie gesagt: Wenn die Zuwachsrate vorhersehbar ist, kannst du das auch clientseitig mit JS erledigen und musst keine Serveranfrage stellen.

                Ich hab' zwar schon fachlich hilfreich bewertet, aber diesen Tipp muss ich nochmal gesondert herrausgreifen.

                Anstatt alle 19 Sekunden den aktuell Rohstoffstand vom Server (ich hab' irgendwie im Urin, dass das sogar bei jedem der 47 Rohstoffe separat passiert) kann beim ersten Request die Zuwachsrate pro Sekunde/Minute oder die Dauer für einen Zuwachs einer bestimmten Menge übertragen.

                Allerdings muss man hier aufpassen, dass durch Rundungsdifferenzen usw. die Werte nicht auseinanderlaufen - auch hier sollte dann in regelmäßigen Abständen der Wert erneut berechnet werden. Im Zweifelsfall sollte man, wenn es dazu kommt, dass Werte auseinanderlaufen, immer Abrunden. Es ist imho besser, wenn man etwas weniger Rohstoffe angezeigt bekommt, als man tatsächlich hat, als mehr Rohstoffe angezeigt zu bekommen.

                Diese Rundungsdifferenzen lassen sich unter Umständen vermeiden, wenn man "runde" Werte nimmt. z.B. +60 Rohstoffe pro Minute.

        2. Hi,

          Also mein Problem ist folgendes, ich baue ein Spiel

          Wieso nehmen sich Neulinge eigentlich so oft derart komplexe Sachen vor - wenn es noch auf zahlreichen dabei involvierten Gebieten an Grundlagenwissen mangelt?

          wo Sachen sich immer automatisch neu laden per jquery. Dies ist leider sehr serverauslastung jedoch wichtig da sich wie wert immer aktualisieren (jede 19s.).

          Irgendetwas zeitgesteuert hochzählen kann der Client auch alleine, dazu muss er nicht ständig den Server anquatschen.
          Und auch der Server muss nicht "alle 19 Sekunden" irgendwtas rechnen - wenn ein Start- und ein Endzeitpunkt bekannt sind, sollten sich die Werte auch zu letzterem berechnen lassen.

          Erst wenn mit diesen Werten dann eine Aktion ausgeführt wird, dann braucht der Server wieder ins Spiel zu kommen - und zwar muss er dann ggf. vom Client übergebene Werte erst mal plausibilisieren, um Manipulation auszuschliessen.

          Im knuddels Chat z.b. wird ja auch dauernhaft die Seite akk. so das der neue Text dort steht, wie bekomme ich das hin ?

          Durch beständige Requests vom Client an den Server - die du ja aber aus Performancegründen nicht willst.

          MfG ChrisB

          --
          Light travels faster than sound - that's why most people appear bright until you hear them speak.
          1. Wieso nehmen sich Neulinge eigentlich so oft derart komplexe Sachen vor - wenn es noch auf zahlreichen dabei involvierten Gebieten an Grundlagenwissen mangelt?

            Ach das hab' ich auch mal gemacht - und jetzt sei ehrlich, du hast sich auch mal etwas begonnen, was eine Nummer zu groß für dich war.

            Ich persönlich habe lieber ein etwas zu hoch gestecktes Ziel, als eins wo ich nichtmal nachdenken muss um es zu erreichen - man sollte es aber nicht Übertreiben.

  2. wie kann ich es den machen das es nicht so stark lastet wie z.b. knuddels chat :D ??

    Letztlich: Indem du nicht JavaScript und nicht HTTP verwendest. Ich weiß aber nicht, ob das in deinem Fall wirklich sinnvoll und nötig ist und ob es den Aufwand lohnt (es scheint mir, dir fehlt derzeit noch das Know-How, sodass du andere, erfolgversprechendere Wege wählen solltest).

    Mit JavaScript ist es nur möglich, HTTP-Anfragen abzusenden (mittels XMLHttpRequest o.ä.). HTTP-Anfragen werden immer vom Client initiiert und in relativ kurzer Zeit beantwortet. Durch spezielle HTTP-Techniken kann das Senden der Antwort verzögert und »häppchenweise« erfolgen.

    Dennoch unterliegst du, solange du an HTTP gebunden ist, dieser starken Limitierung. Die bedeutet für ein Server-System, das nicht außerordentlich stark optimiert ist, eine starke Last und die Antwortzeit ist nie so, wie du es von einem Chat gewöhnt bist.

    Nur einige Browser unterstützen echte dauerhafte Verbindungen, mit denen man vom Server Ereignisse empfangen kann - damit würden Chats wie Knuddels schon eher funktionieren. Doch die besagten Java-Applets dieser Chatseiten nutzen ganz andere Protokolle als HTTP, die speziell dafür ausgelegt sind. Java und Flash können solche Verbindungen öffnen, JavaScript kann es (noch) nicht.

    Mathias

  3. Es gibt mehrere Möglichkeiten. Du kannst JavaScript-seitig bspw. das Intervall dynamisch erhöhen, wenn eine Zeit lang nichts passiert (z.B. bis auf 120 sek).

    Ansonsten empfehle ich Dir, Dich mit der serverseitigen Technologie auseinanderzusetzen, für den die Marketingsprech-Bezeichnung "COMET" geprägt wurde, eine Technik, die eine HTTP-Verbindung in beide Richtungen offen hält.

    Problematisch dabei dürfte vor allem sein, dass normale Webserver wie Apache, MSII oder lighttpd die entsprechende Technik noch nicht unterstützen, Du also für die COMET-Verbindungen entweder ein Modul schreiben oder einen komplett neuen Server einsetzen musst, natürlich auf einem anderen Port als den statischen Server.

    Gruß, LX

    --
    RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine wunderbar. (...)