Giusto tempo di "refresh" per la chat postato il 19/12/2009 16:03:21 nel forum programmazione, gdrcd e open source e modificato da ghennadi72 il 19/12/2009 16:04:48
Mi chiedevo quale possa essere un giusto tempo di "refresh" per la chat, premettendo che il refresh della chat in questione in realtà non refresha affatto l'intera pagina ma si limita ad aggiungere al div della chat le eventuali azioni aggiunte, con innerHtml https://www.gdr-online.com/readforum.asp?id=104058
Al momento per fare le prove ho impostato un timeout molto ridotto (3 secondi) ma facendomi qualche conto ho realizzato che in un'ora di gioco questo significa che ogni utente fa qualcosa come 1200 chiamate a una pagina che a sua volta esegue almeno 2 query su database (uno sulla tabella dei pg online, l'altro su quella della chat), il che significa 2400 query... in pratica un utente che sta da solo in backchat consuma l'intero ammontare delle query/ora che ad esempio altervista (che comunque non sto usando) offre col database mysql di classe 3 (2500 q/ora).
Il tutto ovviamente senza contare le query generate da chi scrive in chat e quelle generate dal frame a refresh automatico che si occupa di aggiornare l'elenco presenti, il meteo, etc....
Che dite, una richiesta ogni 10 sec é troppo lenta?
Pagine → 1
19/12/2009 16:17:32
Dipende, una richiesta ogni 3 secondi che non carica costantemente il recordset del server è molto più performante di una ogni 10 secondi che però carica tonnellate di risorse (specie se poi non facciamo una giusta opera di pulizia).
Detto questo, ritengo che il giusto modo di impostare i tempi di refresh sia di attenersi alla media temporale con cui i giocatori inviano le azioni, generalmente questo avviene dai 3 minuti in su, per cui anche settando il tempo di refresh ogni 20 secondi, non dovrebbero esservi particolari problemi.
Senza contare poi che è possibile ingannare l'utente sulla rapidità della chat facendo partire circa 500 millisecondi dopo l'invio dell'azione una richiesta di aggiornamento immediata della chat, così da simulare un effetto istantaneo lasciando però a te risparmiare chiamate e risorse.
20/12/2009 11:05:53
L'ottimo sarebbe un refresh ogni 10 minuti, preciso preciso per leggersi un turno.
20/12/2009 12:56:02
oppure adotti un metodo ibrido che da l'idea all'utente che la chat sia in diretta mente il refresh lo fai più lentamente XD ovvero quando il player invia la propria azione forzi il refresh in modo che la propria azione appaia istantaneamente a video (in questo modo l'utente ha la percezione mentale di una chat rapida e funzionante) poi magari carichi anche ogni 30/40 secondi (che tanto nessuno se ne accorge perchè tu non sai effettivamente quando è che l'altro invia la sua azione). Contando che tra una frase e l'altra passano in media 3/4 minuti (se si gioca velocemente) non ci dovrebbero essere problemi a livello di chat.
L'unico problema che potrebbe nascere è un lieve ritardo nell'arrivo di sussurri (in genere mandati più rapidamente delle azioni) ma è un ritado che si può accettare secondo me
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
I dati del generatore di rank sono stati aggiornati!