pagina bianca chat con refresh postato il 15/06/2009 14:13:23 nel forum programmazione, gdrcd, open source, hosting
Salve a tutti.
Premetto che prima di dedicedermi a scrivere questo post ne ho provate di tutti i colori...
Il problema è il seguente:
alcuni utenti, la maggioranza, lamentano la comparsa di pagine bianche in chat(lo sfondo di default dovrebbe essere nero), come se il caricamento di uesta in fase di refresh non andasse a buon fine...
Di fatto, pur partendo dal pacchetto gdrcd / gdrcd extreme ho apportato diverse modifiche in modo che ad esempio il refresh individuasse prima il browser dell'utente per capire poi quale javascript utilizzre(se supportati)o usare direttamente il meta tag...
Imputando la pagina bianca ad una difficoltà di caricamento ho impostato un backup della chat piuttosto frequente, con relativa ottimizzazione delle tabelle... quindi non dovrebbe esserci nemmeno il problema della "pesantezza" dei dati da leggere/caricare...
Ho anche eliminato alcuni problemi di dati "null" che, generando errore non permettevano il refresh della pagina...
Risultato:
IO con il mio firefox 3 aggiornato all'ultima versione, potenziato di ogni possibile debugger di sviluppo web, non vedo né sfarfallii né tanto meno pagine bianche...quindi mi risulta difficile debuggar eil problema, perché di fatto io non ce l'ho...
Sto facendo una ricerca tra gli utenti, aprendo un tread, per capire se il problema sia circoscritto ad una qualsiasi caratteristica di provider di linea, di banda, di potenza del pc o qant'altro, ma per ora le risposte sono davvero troppo eterogenee per trovare una causa comune...
Qualcuno di voi saprebbe darmi una mano a capire dovre potrebbe essere il problema?
Pagine → 1 2
15/06/2009 14:15:21
Consiglio: perchè il refresh non provi a farlo con ajax?
15/06/2009 14:23:42
Sto fando XD
Però se qualcuno ha altre "ottime idee", da buon programamtore che crede nella legge della "conservazione del codice" ("il codice non si distrugge né si crea, ma con copia/incolla e un pizzico di creatività tutto cambia forma) non mi tiro indietro! :P
15/06/2009 15:05:54
Beh io di ajax non ne sò quasi nulla.Però ho sentito dire che per fare i refresh anche in determinate zone di una pagina è molto meglio di php o di qualsiasi altro linguaggio.
15/06/2009 15:55:45 e modificato da dyrr il 15/06/2009 15:58:21
Se non ricordo male a volte il problema succedeva se per qualche motivo veniva caricata per prima il refresh.php del testo.php (cosa che normalmente non dovrebbe succedere in quanto il testo.php è molto più leggero da caricare del refresh.php)
Ma in pratica quello che succede è questo quando succede quel problema:
Viene caricato il refresh.php che tramite il js alla fine di questo tenta di scrivere sul testo.php anche l'head della pagina contenente i css
se il testo.php temporalmente parlando non arriva ad essere caricato prima dell'esecuzione del js l'head della pagina contenente i css non viene scritto dal js
Al successivo refresh ciclico del refresh.php quando il js appende solamente i messaggi nuovi visualizzati senza scrivere più l'head della pagina ti ritroverai con una pagina bianca (in quanto ti manca tutta la parte iniziale con l'head e i css) e il primo messaggio appeso.
15/06/2009 18:45:08
La soluzione può essere semplice: faccio un esempio per una chat a sfondo nero.
Metti la chat sopra un livello dello stesso colore di sfondo della chat :il nero.
Quando la chat caricherà durante il refresh, non avrai quel fastidioso flash bianco.
Oppure metti la chat in un iframe contenuto in una pagina con lo sfondo del medesimo colore.
15/06/2009 18:50:43
rimarrebbe però il problema (se la cosa avviene pe ril motivo che ho descritto sopra) che quelle volte che la pagina non carica temporalmente in ordine corretto i messaggi si perde il primo blococ di messaggi anche se risolve il problema dello sfondo
15/06/2009 18:53:41
A questo punto, risolto il problema del colore sottostante, non vi sono più motivi per far modificare dallo script il contenuto di testo.php, ma si può tranquillamente lavorare solo sulla pagina refresh.php, facendo visualizzare direttamente quella dopo averla opportunamente modificata.
15/06/2009 19:19:14
Se non ho capito male suggeriresti di far fare tutto al refresh.php usare il js per passare i dati al testo.php ma farli visualizzare direttamente al refresh.php modificandola e cambiandogli di posto nella disposizione dei frame giusto?
il discorso è che refresh.php modifica il testo.php utilizza quello script per dare un maggiore senso di fluidità appendendo solo i nuovi messaggi nella chat e renderla più fluida rispetto ad una chat che ad ogni refresh ciclico ricarichi un tot di messaggi nella chat.
Oltretutto caricare solo i nuovi messaggi è molto più leggero a livello di pesantezza della pagina in quanto dopo il primo ingresso solitamente sarà difficile che la query restituisca più di uno massimo 2 messaggi nuovi e quindi faccia tutto il lavoro di formattazione della chat per quei due messaggi nuovi che trova.
15/06/2009 22:07:24
Più che altro le chat di gdr-cd sono concepite male logicamente parlando.
In refresh.php avviene il controllo per inserire, nella sorgente html che scriverà con js onfly in testo.php, l'header html con il link al css etc.
Tale controllo si basa sul ceck del LastTime in sessione, il quale con un refresh manuale non corrisponderà a quanto previsto quindi foglio bianco privo di css.
Ora non mi pare di averlo visto.. ma una soluzione può essere scrivere in palestra.php $_SESSION['LastTime'] = 0;
In questo modo ogniqualvolta si ricarica tutto il frame il lasttime torna alla condizione essenziale affinchè refresh.php capisca che deve compilare la pagina da capo...
Il secondo errore di logica di quella chat poi è nel metodo con cui scrive.. così facendo lascia il tag body e html aperti e con qualche browser a volte può capitare qualche problema di formattazione.
Sarebbe più conveniente creare, come testo.php, una pagina con una div e tramite refresh.php si mandano le azioni ad uno script scritto in questo nuovo ipotetico testo.php che poi tramite inner html innesta le nuove azioni nella div
15/06/2009 22:21:37
In palestra php è gia presente il $_SESSION['LastTime'] = 0;
Per quanto riguarda come scrive la chat quello script hai ragione oltretutto la chat del gdr cd usa 4 pagine:
palestra.php
input.php
refresh.php
testo.php
volendo si potrebbe modificarla riducendo le pagine mantenendo il layout con div e iframe (o volendo ajax) su palestra.php e poi l'input.php e il refresh.php facendo appunto scrivere da uno script tramite innerHTML direttamente su palestra.php.
In questo modo visto che la pagina viene letta in maniera sequenziale se il div contenente l'iframe viene scritto dopo quello dove deve essere stampata la pagina sicuramente non c'è piùil problema di trovar eil frame non ancora caricato.
In questo caso però andrebbe appunto riscritto il js che si occupa dell'output della pagina perchè scrivendo la chat dentor un div nella pagina principale bisognerebbe cambiare anche il pezzo di codice che si occupa dello scroll in basso.
Pagine → 1 2
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
wylly93 ha recensito The Eyrie GdR
Metin2: Doppio evento: Caccia al tesoro e Altromondo!
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
eXtremelot: Navigare o... Volare?? :-)
Games of Thrones Winter is Coming: Playoff dell'assedio di Grande Inverno
I dati del generatore di rank sono stati aggiornati!
Legacy of Magic: Gli Elementi Oscuri - La Nera Signora dell'Acqua
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
Il gestore di W40K Dathyar ha risposto alla recensione di dreamboy
dreamboy ha recensito W40K Dathyar
Metin2: Live ora: Server Boost Yohara e Twitch Drop
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
Epic Wizardry RP: Changelog N. 4 - Epic Wizardry Rp
drongo ha recensito Il Grande Blu
Pirates of the Caribbean: Tides of War: Quarti di finale del torneo
DarkOrbit: Galactic Strife & Buono gratis 💥
Pandora Upside Down High School → La prima scuola per sovrannaturali al mondo vi attende! Scoprite il vostro cammino Ancestrale relazionandovi con i compagni e le attività dei club
Lista Browser Game - Lista dei browser game presenti sul portale
Naruto Garden - Intervista al founder di Naruto Garden il play by forum dei Ninja!
Awakening New York - Intervista al gestore del GdR moderno Awakening New York. Vivi nella Grande Mela!
Black Soul Shippuden - Intervista ai gestori di Black Soul Shippuden... gioco di ruolo via chat ambientato nel mondo di Naruto!
Psicologia PG - La Psicologia dietro i Personaggi: come creare una profondità emotiva
Operazione Vertigo - Intervista al gestore di Operazione Vertigo il GdR ambientato durante la Seconda Guerra Mondiale in una cittadina francese