problema refresh chat
problema refresh chat postato il 03/10/2012 07:43:31 nel forum programmazione, open source e hosting
Ciao ragazzi, programmando il mio mini GDR ho riscontrato uno strano problema. A volte la pagina che dovrebbe visualizzare la chat visualizza solo alcuni record di cui l'ultimo visualizzato a metà, il fatto si sistema da solo al successivo refresh, mi chiedevo, c'è forse qualcosa che non va nel codice?
Incollo il codice così magari qualcuno mi dice cosa devo andarmi a studiare meglio :P
<?php
session_start();
include '../conf/conf.ini.php';
?>
<html style="background-color: black">
<head>
<script>
function scroller()
{
scroll(0,20000000);
}
</script>
<meta http-equiv="refresh" content="10,view.php">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../style/style_chat.css">
<title>View</title>
</head>
<body style="background-color: black" onload="scroller()">
<?php
$nome_pg = $_SESSION['nome'];
$locazione = $_SESSION['locazione'];
$actualtime=time();
$query = "DELETE FROM chat WHERE time+10800<'$actualtime'";
$refresh = mysql_query($query, $db) or die (mysql_error($db));
//stampa chat
$query = "SELECT * FROM chat WHERE locazione='$locazione' ORDER BY time ASC";
$exec_reading = mysql_query($query, $db) or die (mysql_error($db));
$numrows = mysql_num_rows($exec_reading);
if ($numrows!=0){
for ($x=0;$x<$numrows;$x++){
$resrow = mysql_fetch_row($exec_reading);
$nomeChat = $resrow['locazione'];
$messChat = stripslashes($resrow[1]);
echo "<p></font>$messChat</font></p>";
}
}
?>
</body>
</html>
Pagine → 1
03/10/2012 20:58:57
Allora il $nomeChat è un residuo della vecchia versione, ora lo elimino subito. I </font> idem, li usavo per evitare che qualcuno non chiudendo un azione andasse a pregiudicare la formattazione dell'azione successiva, in teoria basta metterlo solo a fine $messChat. Sto cercando documentazione su interval() ma su internet non mi è molto chiaro, stasera mi faccio prestare un manuale e do un'occhiata. Hai sottolineato che la mia chat ricarica tutto i record ad ogni refresh, c'è un modo per memorizzare i visualizzati e controllare se ce ne sono di nuovi e aggiungerli? Non avevo mai valutato la possibilità.
Working in Progress
03/10/2012 21:42:14
daddyboy ha scritto: Hai sottolineato che la mia chat ricarica tutto i record ad ogni refresh, c'è un modo per memorizzare i visualizzati e controllare se ce ne sono di nuovi e aggiungerli? Non avevo mai valutato la possibilità.
Con il tuo attuale sistema, non credo. Dovresti per lo meno avere un modo per generare l'html della pagina dopo aver già caricato tutti i messaggi (in modo da poter inviare un identificativo dell'ultimo messaggio caricato come parametro della prossima refresh). Oppure devi evitare di refreshare quella pagina, refresha un frame nascosto e usa un po' di javascript per agguingere dinamicamente i nuovi messaggi. O usa solo javascript per fare richieste AJAX al server per i nuovi messaggi.
03/10/2012 22:53:34
ok, di javascript sono abbastanza all'asciutto, di ajax ho provato a dare una letta ma lo reputo ancora difficile, studio php da poco e mi perdo :D
Secondo voi quale sarebbe il metodo ottimale per la visualizzazione della chat?
Così mi faccio un idea e so dove magari andare a puntare
03/10/2012 23:42:56
Il modo ottimale è quello che ti permette di caricare solo quello che ti serve, una volta sola.
Se vuoi farlo solo in php devi per forza usare il Refresh, magari però passando alla pagina da ricaricare un parametro nell'url che indicargli da dove iniziare a caricare
04/10/2012 00:20:23
Scusami ma non ti seguo, passare tramite get un valore da caricare, ma quale? e come faccio a permettere alla pagina di mantenere "salvate" le giocate precedenti?
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
State of Survival ↗
New Orleans ↗
World of the Sea Battle ↗
World of Warship ↗
Imperion ↗