Salve,

mi sono da poco svegliato. Ho passato molte ore a rimuginare su come risolvere un problema architettura per una applicazione che devo implementare. Non mi pagano, lo sto facendo per passatempo.



La webapplication che voglio creare è un browser game.
La parte sul server è gestita in php5/mysql con apache webserver.

Lato client abbiamo ovviamente il browser.

Il mio problema riguarda la parte al lato del cliente. La pagina è composta dalle seguenti parti:
- Un header che informa il giocatore dello stato corrente del giocatore.
- un corpo che contiene
- un menu laterale per la navigazione
- una console di gioco che si trova in fondo, che altro non è che un div nel quale sono caricate le informazioni testuali sugli avvenimenti. La console prevede anche un input text nel quale il giocatore inserisce un comando o una frase per la chat e questa viene inviata ad altri giocatori, oppure eseguita se è un comando.

Nel gioco avvengono avvenimenti per cui il cliente deve essere informato. Quindi immagino che la pagina dovrà fare un pooling al server per vedere di questi aggiornamenti.
In più la pagina non si può aggiornare completamente come il cliente fa una azione (come inserire una stringa nella commandLineTextInput quindi immagino che servirà un abbondante uso di javascript e richieste asincrone.

Il mio problema principale, è, visto la parte più difficile sembra la parte client con tutte richieste asincrone e javascript, allora dovrei trovare un modo per dividere la parte applicazione che gestisce il gioco, dal contenuto e dal contenitore e dalla presentazione.

Cioè, magari oggi decido che ogni azione dell'utente la pagina viene ricaricata, ma da domani voglio fare tutte richieste asincrone in javascript usando JSON, quindi il PHP non m genera più pagine XHTML ma strutture dati. Ci sono tecniche che mi permettono di fare questo? Ossia dividere il contenuto, dal contenitore, dalla presentazione.