Chat da file + domanda sull'aggiornamento pa postato il 30/08/2009 12:42:26 nel forum programmazione, gdrcd, open source, hosting
premessa: uso un sito hosting windows su aruba, php 5 e Mysql. Il codice è sempre creato da me, non uso GDR open source.
Pensavo di applicare al mio futuro gdr un sistema di chat basata sull'accesso ad un file di testo (diverso per ogni chat, con i file che dopo una tot ora si resettano automaticamente al primo accesso) per un semplice motivo: limitare gli accessi contemporanei al DB al minimo possibile, a seguito di una voce che sosteneva che mysql regge poco in questo senso. (il problema delle query non si pone perchè le ho illimitate)
Secondo voi mi conviene usare questa metodologia (contando che la prova pratica già l'ho fatta e funziona bene) o è meglio usare il DB? Metto le mani avanti dicendo che probabilmente la voce è sbagliata, se è così correggetemi pure, io purtroppo amo smanettare ma la teoria la leggo raramente, anche se so che è sbagliato ma è più forte di me.
Per quanto riguarda il problema sull'aggiornare la pagina è semplice quanto (temo) di difficile risoluzione...
Ogni volta che si aggiorna la pagina per controllare la chat in IE (dannato!) mi appare per un secondo la paginata bianca per poi caricare il resto tranquillamente, con FF non lo fa e nemmeno con chrome, e non è problema del mio pc su cui lavoro che è una ciofeca in quanto l'ho testato su 3 diverse macchine (di cui una comprata da nemmeno due-tre mesi) e lo fa in tutte...
Un secondo o due sono relativamente pochi ma vedere una schermata bianca in un sito con ambientazione gotica, quindi prevalentemente scura, è orribile e per me insopportabile XD
Per l'aggiornamento uso il setTimeout di JS.
Sapete se si può risolvere ed eventualmente come? (mi basta anche una spiegazione teorica)
Pagine → 1
30/08/2009 12:50:04
Io ho usato la chat su file di testo sia per Contea di Fastar che per YouRole, anche se su quest'ultimo sono poi passato al db. E' un modo per tenere leggero il db che funziona perfettamente fintantochè l'utenza è ridotta (sotto ai 20 giocatori contemporaneamente), per evitare rischi di accesso multiplo al file di testo.
Il problema del refresh delle chat è abbastanza fastidioso: se usi il normale timeout sappi che dovrai comunque fare i conti con paginate bianche, sfarfallii fastidiosi e compagnie varie. Conviene di gran lunga ottimizzare ed usare una chat basata sull'ajax.
30/08/2009 13:15:48
raizingher: credo che 20 utenti contemporanei nella stessa chat sia un obbiettivo molto alto per una land che non sia ai livelli di utenza "extremelot" (e anche lì l'ho vista raggiungere poche volte XD). Considera anche che io ho un file per ogni diversa chat, e non uno per tutti, (non so come sono i tuoi) quindi la probabilità di un accesso doppio è scarsissima.
Per quanto riguarda Ajax se devo essere sincera non l'ho mai usato, ma se mi evita quell'orrenda paginata bianca farò volentieri ammenda, ti ringrazio del consiglio.
mr_faber: Non è un problema di velocità di caricamento, ma un problema di non intasare il DB con query continue e ti spiego il perchè: Al DB accedono tutti insieme ad UNA sola tabella per tutte le chat mentre ai file ci sono accessi divisi per chat, quindi come detto su è un pò meno a rischio di problemi (in teoria e secondo me, per questo chiedo consigli :P)
Per l'host non ci sono problemi, come detto sono su aruba, e non è una novità lo uso da anni quindi non devo scegliere dove andare, ma adeguarmi a dove sono :D
30/08/2009 13:22:55 e modificato da dyrr il 30/08/2009 13:24:35
Secondo me ti conviene restare su una chat basata sul database.
Per ovviare il problema dello sfarfallio o della pagina bianca al momento del refresh ci sono diversi sistemi.
Per esempio puoi vedere di far si che la pagina quando refresha aggiunga solo i messaggi nuovi alla chat evitando di ricaricarla ogni volta.
Lo puoi fare tramite un iframe nascosto che tramite un javascript scriva i nuovi messaggi sul div di destinazione
Oppure puoi usare ajax per far recuperare solo i messaggi nuovi nel div di destinazione e farglieli aggiungere.
Questo ti alleggerisce sicuramente la chat e ti evita gli sfarfallii ad ogni ricaricamento della chat
Tra l'altro una query che ti recuperi ogni volta solo uno o due messaggi nuovi e non tutti i messaggi nuovi è abbastanza leggera
Magari se vuoi assicurarti utilizzabilità da ogni utente assicurandoti che anch eun utente che non abbia js abilitato (credo in pochi ormai comunque)
possa vedere la chat piazzando all'interno di un tag <noscript></noscript>un iframe che in quel caso si per forza deve ricaricare ogni volta tutti gli ultimi messaggi
30/08/2009 13:23:37
Ajax (dal lato javascript) ha anche delle funzioni native per verificare l'ultima modifica del file, in modo che php ci vada a leggere se e solo se c'è stata una modifica dall'ultimo refresh.
Se non l'hai mai usato ma ti interesserebbe, visto che inizialmente può essere un mondo un po' ostico, e non capisci qualcosa o ti serve una mano, manda pm :)
Per il resto devo ammettere che le chat che girano du db mysql non mi hanno mai dato grossi problemi, sempre che la struttura sia ben congeniata (ovvero non gdr-cd).
30/08/2009 14:06:49
Mhh se mi dite che il problema non sussiste con un DB mysql allora direi che è molto meglio quello :S
30/08/2009 15:08:49 e modificato da hairac il 30/08/2009 15:31:19
ti ringrazio del consiglio e dell'avvertimento, non ho mai avuto un gran consumo di banda ma suppongo che con un gdr ed i relativi caricamenti a loop sia un pò diverso, terrò a mente di minimizzare tutto :)
**edit**
Visto che siamo entrati in tema di banda mi è venuta una domanda:
Quando in una o più pagine vengono caricati X-cloni della medesima immagine, a livello di banda vale per 1 o consuma X*Y banda per ogni clone?
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
I dati del generatore di rank sono stati aggiornati!
cakendish ha recensito La Tana del Ladro
OGame → In OGame migliaia di giocatori da tutto il mondo competono tra di loro per conquistare l'intero universo!
Legacy of Magic: La Festa dei Colori e delle Maschere
deanna ha recensito Star Trek Horizon
World of Warship: Arruolare Steam-chan
Lineage II: Promozione della scatola della maschera benedetta
Sponsorizzati con noi! → Sponsorizza il tuo gioco su GDR-online! Trova nuovi giocatori fra i migliaia di appassionati che ogni giorno visitano il portale!
herhorn ha recensito La Tana del Ladro
La Tana del Ladro: TdL Stories - Non c'è piu nessuno...
Il genere Fantasy raggiunge i 2.200 giochi catalogati!
Star Wars Forum: 20 Anni di Star Wars Forum
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, inizia l'avventura!
Left To Survive: Danny la Vipera 🧪 disponibile!
flying mustache ha recensito La Tana del Ladro
New Hill Gdr: Novità in scheda personaggi
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, inizia l'avventura!
Kick - I segreti del successo: come rendere popolare il tuo canale gaming su Kick
Due Città - Recensione del gioco Due Città...da cui poi si son sviluppati tutti i giochi GDR-CD
Connessioni - L'insolita connessione tra casinò online e GDR: due mondi che si incontrano...
Castello Medievale - Articolo sui Castelli Medievale: il modo di costruirli e la loro vita
Giochi Star Wars - Lista completa dei giochi di ruolo online ambientati nel mondo di Star Wars
Consigli per GM - Devo farli morire? Consigli pratici per Game Master! :)
GdR e Team - Giordana Bassani di "Giro di News" ci parla dei play by chat con un occhio alla sua evoluzione
Endlos Realm - Intervita all'amministratore del Play by Forum fantasy Endlos Realm