automatische aktualisierung von werten ohne reload der Seite

kazuma

Grünschnabel
Hallo,

ich zerbreche mir gerade über folgendes den Kopf:

Ich habe for ein browsergame zu machen und bin gerade am planen, welche technologie ich für was verwende. Ich möchte dass die 3 verschiedenen Rohstoffanzeigen automatisch aktualisiert werden. Die Werte sind in einer MySQL Datenbank gespeichert.

1. Möglichkeit :
Ich führe alle 10 - 15 sec ein xmlhttprequest aus, welche mir die neuesten Rohstoffwerte liefter, was allerdings vorraussetzt , dass auf dem Server ein cronjob alle 10 sec ein Script ausführt, welches alle Rohstoffwerte von den Spielern die Online sind aktualisiert. Das schlägt allerdings ( denke ich mal ) stark auf die performance.

2.Möglichkeit:
Ich führe die Rohstoffaktualisierung in der Datenbank nur dann aus, wenn etwas getan wird, was diese Werte beeinflusst. Dann schreibe ich die Zeit der letzten aktualisierung dazu und wenn jetzt jemand das Spiel öffnet werden die fehlenden Rohstoffe mit javascript berechnet und auf der Seite ausgegeben ( diese berechnungen führt javascript dann alle 10 - 15 sec auf basis der am Anfang übergebenen Werte aus ). Falls jetzt etwas unerwartetes passiert was die Werte beeinflusst wird einfach die komplette Seite aktualisiert und javascript bekommt neue Werte für die Berechnung.

Welche von den Werten ist besser für die Performance ?
 
Auf jedenfalls die zweite Variante. Du musst ja nirgendwo den aktuellen Rohstoffwert stehen haben, es reicht ja wenn du weist, wie du ihn berechnest. Wenn jetzt jemand etwas kauft oder sich das "Einkommen" ändert, updatest du die Datenbank wie du es geschrieben hast.
Genauso wie du ja bei einer Nutzerdatenbank nicht täglich das Alter der User in einer Spalte aktualisierst, sondern bei der Abfrage einfach errechnest, wie alt er ist.
 
das hatte ich mir schon gedacht XD

dann wäre da noch eins, ich möchte in das Spiel auch einen Chat einbauen der auch funktionen die in zusammenhang mit dem spiel besitzt zb ( nur ally chat, öffentlicher chat, nur nachricht an einen gewissen spieler... ). diesen werde ich mit ajax machen oder gibt es dafür eine andere möglichkeit ?
 

Neue Beiträge

Zurück