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
Hero Wars: ⚔️ Il torneo di Titan Power è iniziato!
Enlisted: Operation "Market Garden"
Seconda Era → Vaste terre coperte di ombre e misteri, dove ogni eroe scrive la storia del Mondo di Eidel. Seconda Era, Play By chat
I dati del generatore di rank sono stati aggiornati!
Black Sails Chronicles: ON - Mastro Corvino
AlterEgo: Alza il Boccale, se no finisce male! (Quest)
RAID Shadow Legends: Evento "Febbre di Caduta"
RAID Shadow Legends → Plasma i tuoi eroi fino a farli diventare vere e proprie armi viventi e assembla i più epici gruppi d'assalto mai visti finora!
alexstrass ha aperto un annuncio di ricerca: Castelnere ricerca Tester
Entropia Universe: Note sulla versione di Entropia Universe 19.0.0
Il gestore di Naruto x Boruto GDR - New Rebirth ha risposto alla recensione di ilterrorista
Il gestore di Naruto x Boruto GDR - New Rebirth ha risposto alla recensione di aura666
AlterEgo → Scopri AlterEgo GdR: un incredibile universo narrativo in stile medievale fantasy che cresce, muta e vive giorno dopo giorno grazie ai suoi giocatori!
Tesi di Laurea → I giochi di ruolo come strumento pedagogico
Ex Gratia GDR: Elezioni in vista per Taiyang
La Tana del Ladro: Orrore nelle Campagne
glittr ha recensito Apocalypse Requiem: Detroit
RAID Shadow Legends → Plasma i tuoi eroi fino a farli diventare vere e proprie armi viventi e assembla i più epici gruppi d'assalto mai visti finora!
Kingdom Hearts Gdr - Intervista a Roxal gestore del gdr Kingdom Hearts (Khuni). Gira la chiave per il mondo della fantasia..
Sociologia e Gdr - Intervista al prof. Bennato sull'approccio sociologico dei giochi di ruolo
Giochi Storici - Lista completa dei giochi di ruolo online storici
Letteratura Anglo-Americana - Immagini dell’altro nella letteratura anglo-americana, da Thoreau a Harry Potter. Un viaggio
Difendersi dai falsi Programmatori - Facili tecniche per difendersi dal programmatori truffaldini e poco professionali :-)
Creare un GdR - Come si crea un nuovo gioco di ruolo cartaceo? Ci risponde il creatore di Wanted!
d!
Chrome Safe Browsing - Il tuo gioco è stato colpito dalla schermata rossa di Chrome Safe Browsing alert? Ecco come risolvere!