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
World of Warship: Aggiornamento 13.11: anteprima
gdr-online.com ha risposto alla discussione: Parere su BrowserGame
Sea of Conquest → Vivi un'avventura tra i mari! Dal cuore del Mare del Diavolo, un paradiso piratesco brulicante di magia, tesori e avventure, salperai verso l'ignoto!
W40K Dathyar: Specializzazioni
NosTale: Ora nel NosMall: dolcissimi mini-pet
DarkOrbit: Aggiorna la scatola dell'Apocalisse!
I dati del generatore di rank sono stati aggiornati!
Exclusive Villa GdR → Las Vegas, azzardo, vizi, soldi, intrighi... Più le sue luci sono scintillanti, più le sue ombre sono oscure. La città che non dorme mai, vi aspetta.
aik ha aperto una nuova discussione: Parere su BrowserGame
eXtremelot: La Bussola dei Cartografi di Lot
Dallas Black Gold: [Trama] JFK Memorial
Hero Wars: Artefatti dei Titani!
Ikariam → Su una piccola isola, in qualche parte del Mediterraneo, sorge un`antica civiltà. Sotto la tua guida inizia un`era di ricchezza e di scoperte!
bother ha recensito Never Have I Ever: Mysteries of Laconia Bay
Games of Thrones Winter is Coming: #giveaways codice regalo! 🥳
Enlisted: Migliorare e ottimizzare le ombre
Road to Hamartia: CACCIA: Sarà uno o tre?
NosTale → Con l’aiuto della spada e della bacchetta magica risolverai abilmente intricate missioni e domerai coraggiosamente mostri selvaggi!
Il Gioco in Rete - Appunti di tesi sul gioco di ruolo online di Diego Vaggi
Gdr-Online su Radio Serpe - Radio Serpe dedica un intera puntata al portale GDR-online! Buon ascolto!
Star Wars Forum - Intervista al gestore di Star Wars Forum GDR.. che la forza sia con voi!
Cartoon Village - Video - Intervista ai gestori di Naruto World e One Piece Islands
Shadow of the Darkness - Intervista al creatore di Shadow of the Darkness il PbC ambientato nel mondo cyberpunk-fantasy di Shadowrun
Giochi di Calcio - Lista completa dei giochi di ruolo online nel mondo del calcio