mmofacts.com

Templates über AJAX laden

gepostet vor 14 Jahre von omarius

Hallo allerseits,

war lange nicht mehr hier, hoffe das Thema gabs noch nicht, meine Schnellsuche hat es nicht gefunden.

Undzwar bin ich am überlegen, das Template des Contents immer per Ajax reinzuladen, statt dass die ganze Seite neu geladen wird, nur mit einem anderen Template. Dafür spricht, dass es natürlich eine Menge Resourcen schont, auf der anderen Seite ergibt sich auch die Frage, in welchem Rythmus man dann die Rohstoffanzeigen oben aktualisiert etc.

Hat jemand schon Erfahrungen damit und kann mir sagen was aus seiner Sicht dagegen oder noch dafür spricht?

Danke und viele Grüße aus Vallendar

omarius

gepostet vor 14 Jahre von BlackScorp

wozu aktualisieren? ich denke du könntest einen ganz normalen javascript counter reinsetzen, der alle x sekunden/minuten die rohstoffe erhöht. Wenn der Spieler die seite aktualisiert, überschreibst du die rohstoff anzeige mit den werten aus der datenbank(es wird zwar eine differenz vorhanden sein zwischen js berechnung und php berechnung, aber wenn du den intervall vergrößerst , fällt es niemanden auf) , denke das würde mehr resourcen sparen als alle x sekunden eine ajax request aufzurufen;)

MFG

gepostet vor 14 Jahre von BlackScorp

Original von BlackScorp

oops wolte auf edit klicken
gepostet vor 14 Jahre von omarius

Hey, ja gute Idee! bei mir läufts eh im 30-minuten Tackt, da passt das... oder jetzt wo ich es sage, könnte ich alle 30 min einen Ajax-Request rausschicken.. und direkt von der DB aktualisieren

Aber das heißt, ihr seht keine relevanten Nachteile an der Methodik die Templates oder generell den Content weitestgehend über Ajax reinzuladen?

lg

Omar

gepostet vor 14 Jahre von tector

Ajax ist ja dafür gedacht Content nachzuladen.

Was genau meinst du mit Templates? Ich finde das ist immer so ein unscharfer Begriff ..

Alle 30 min ein Ajax-Request? Finde ich nicht gut... dann doch besser die Seite komplett neu laden.

gepostet vor 14 Jahre von BlackScorp

ein relevanter nachteil wäre dass wenn ein user dein spiel auf hat, ohne dort was zu tun, schickt er dennoch ajax requests .. ich denke es ist doch besser solche sachen dem client zu überlassen um den server nicht unnötig zu stressen ihc mein stell dir vor 1000 spieler haben die seite einfach so auf und tuen nichts drauf alle 30 min kommen 1000 requests an den server nur um die rohstoffe zu aktualisieren. ich würde ajax requests wirklich nur dann ausführen, wenn die nötig sind

MFG

gepostet vor 14 Jahre von DrakeL

Berechnung im Javascript spart Ressourcen weil keine Ajax Requests durchgeführt werden müssen. Hat aber den großen Nachteil dass die Logik für die Rohstoffberechnung sowohl in PHP als auch in Javascript vorhanden und gepflegt werden muss. Halte ich aus diesem Grund nur für eine Notlösung.

Ich würde eher in die Richtung gehen dem Server zu überlassen welche Daten er wann am Client aktualisieren muss. Daher pushing statt pulling. Dann kannst auch ohne Probleme hinzufügen dass Hinweismeldungen kommen sofort wenn der Spieler eine Nachricht bekommt, angegriffen wird oder etwas fertig gebaut ist etc.

Ein Lösungsansatz dafür ist beispielsweise Comet. Funktioniert auch mit Apache/PHP Standardumgebung, allerdings wegen der Menge der offenen Verbindungen nicht sehr effizient, da gibt es spezialisiertere Webserver wie den APE.

Es spricht aber auch nichts dagegen dass der Client alle 30 Minuten ein Ajax Request durchführt. Das wären bei 1000 Spieler 0,5 Requests pro Sekunde.

Problem ist eher dass die Requests nicht verteilt sind sondern egal welche Lösung zu nimmst du alle 30 Minuten eine große Last auf einmal hast (ich denke mal bei jedem Spieler aktualisieren sich die Rohstoffe zur gleichen Zeit).

gepostet vor 14 Jahre von Jackflash

Hi,

grad dafür ist Ajax ja da. Und ein Request alle halbe Stunde ist ja mal gar gar nichts. Bei all den neueren Projekten haben wir die meiste Interaktion mit Ajax (jquery) realisiert.

Kann ich dir nur empfehlen, fühlt sich auf der Client-Seite einfach besser an und nur darauf kommt es im Endeffekt an. Wenn man nicht kompletten Quatsch an die DB sendet, ist das Performancetechnisch auch kein Problem da hilft eine ernsthaft umgesetzte Normalisierung viel mehr.

Ausserdem bekommt man ja heute schon solche abartigen Raketen für unter 100 Euro: http://www.hetzner.de/de/hosting/produkte_rootserver/eq8/

Gruss, Sam.

gepostet vor 13 Jahre, 11 Monate von omarius

Original von tector

Ajax ist ja dafür gedacht Content nachzuladen.

Was genau meinst du mit Templates? Ich finde das ist immer so ein unscharfer Begriff ..

Alle 30 min ein Ajax-Request? Finde ich nicht gut... dann doch besser die Seite komplett neu laden.

Templates, damit meine ich HTML Dateien mit Platzhaltervariablen, die von einer PHP Klasse gefetcht werden, sprich Variablen werden eingeladen und das ganze wird als reines HTML ausgegeben. Wenn ein User zB auf Resources klickt, soll einfach das entspr. Template mit den Daten vom Server gefetcht werden und per jquery in das content-div platziert werden

@Jackflash: Comet sieht echt cool aus, gibt es schon erfolgereiche BGs die das einsetzen?

gepostet vor 13 Jahre, 11 Monate von TopGunner

Original von omarius

Comet sieht echt cool aus, gibt es schon erfolgereiche BGs die das einsetzen?

Da ich selbst nicht sehr viele BGs spiele, fällt mir nur eins ein: Fliplife

Auf diese Diskussion antworten