2009-08-27 10 views
0

Ich mache dieses Spiel, wo ich versuche, Menschen zu "paaren". Also habe ich diese Datenbank, wo ich Leute hinzufüge, wenn sie einem Spiel beitreten wollen. Und wenn zwei Leute einem Spiel beitreten wollen, leite ich sie zum Spiel um.Holen Sie Informationen aus der Datenbank mit Ajax, bis es richtig wird

Aber ich wollte dies in Ajax machen (was ich neu bin), so dass es kontinuierlich auf die Datenbank schaut, wenn eine neue Person beigetreten ist. Ich dachte, mit dieser wäre eine gute Methode sein:

new Ajax.PeriodicalUpdater('products', '/some_url', 
    { 
    method: 'get', 
    insertion: Insertion.Top, 
    frequency: 1, 
    decay: 2 
    }); 

Aber dann erinnerte er mich, dass es würde öffnen und die Datenbank alles umsonst sehr oft schließen. Gibt es eine bessere Lösung?

Antwort

0

Korrekt, mit der Datenbank wird die Belastung erhöhen. Je nachdem, wie viel Ladung Sie haben, kann es mehr als 1 Sekunde dauern, bis Sie zurückkehren. In diesem Fall wird sich die Anwendung selbst ernähren.

Eine andere Option wäre, etwas auf der Serverseite im Speicher zu behalten. In PHP gibt es kein "App Server" -Konzept, also ist DB ein guter Ort oder etwas wie Memcache.

Auch müssen Sie über Transaktionalität nachdenken. Was passiert, wenn 3 Leute im Spiel landen?

+0

Vielen Dank, natürlich sollte ich es auf dem Speicher speichern. Dieses Spiel wird nicht sehr öffentlich sein (es ist für ein Schulprojekt), also wird das 3-Personen-Problem nicht üblich sein. : D –

0

Wenn sich die Leute nur dann für Spiele anmelden können, wenn die Anwendung aktiv ist, warum diese Informationen in der Datenbank gespeichert werden sollen? Das Bereitstellen von Informationen aus einer URL muss nicht von der Datenbank geladen werden. Es könnte ein Repository unterschiedlichen Typs (z. B. Speicher) sein.

Wenn Sie nur einen Anwendungsserver haben, ist es in Ordnung, die Personenliste im Shared Memory-Objekt zu speichern. Für eine Anwendungsfarm gelten möglicherweise unterschiedliche Regeln - abhängig von Ihrer verwendeten Konfiguration und Sitzungsspeicher.

+0

Ja, ein Anwendungsserver. Danke noch einmal! –

Verwandte Themen