22. juni 2003 - 17:00
Der er
27 kommentarer og 1 løsning
Opdatere side uden blink..
Hvordan for jeg en side til at opdatere automatisk hvert 5. sekund uden den blinker når den opdatere??
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Har set olebole har lavet en blinkfri chat her på E
-- og tricket er en skjult iframe, som laver en location.reload(true)
Du kan gøre er at lave siden så kort (under 4Kilobyte) og simpel at blinket bliver kort nok til at være usynligt. Alternativt kan du opdatere en anden side (i en usynlig ramme) og så bruge javascript til at flytte de nye data derfra over i den side du viser frem. Jeg vil nok anbefale den første løsning da den anden kræver et rimeligt godt kendskab til javascript, html og DOM. mvh JakobA
Vi skal først have et frameset, regner med det er til en chat. Vi skal have to usynlige frames en hvor vi indsætter og en hvor vi opdatere, framesettet kunne se ud som følgende -> <frameset rows="*,90,0,0" frameborder="no" border="0" framespacing="0"> <frame name="chatvis" src="chat_show.php" scrolling="yes" noresize> <frame name="chatsender" src="chat_sender.php" scrolling="no" noresize> <frame name="chatskjult" scrolling="no" noresize src="chat_hide.php"> <frame name="chatskjultind" scrolling="no" noresize src="chat_hidein.php"> Vores chat_show.php kunne se ud som følgende -> <HTML> <HEAD> <script> function opdaterSpan(chatHTML) { if (document.getElementById) document.getElementById("iespan").innerHTML = chatHTML; else if (document.all) document.all["iespan"].innerHTML = chatHTML; else if (document.layers) document["nslayer"].document.write(chatHTML); } </script> </HEAD> <BODY onLoad="parent.frames['chatskjult'].location.reload(true);"> <span id="iespan"><layer id="nslayer"> </layer></span> </BODY> </HTML> chat_sender.php er bare den hvor man indtaster besked mv. Sådan en har du sikkert allerede. chat_hide.php er der vi henter beskederne -> <html> <head> <script> chatHTML = 'HER SKAL DIT UDTRÆK VÆRE'; if (parent.frames['chatvis'].opdaterSpan) { parent.frames['chatvis'].opdaterSpan(chatHTML); setTimeout("self.location.reload(true)",2000); } </script> </head> <body> </body> </html> Vores sidste side chat_hidein.php er blot en side hvor vi indsætter i databasen. Så de to sider du skal være opmærsom på er altså chat_hide.php og chat_show.php
Tusind tak skal i have :) jeg er sku ked af jeg ikke liiige havde læst det andent forum :) burde nok kigge efter det først :) hehe sry m8's :)
22. juni 2003 - 17:32
#10
Hmm den siger :S Parse error: parse error, unexpected '}' in /customers/goog.dk/goog.dk/httpd.www/chat/chat/top.php on line 230 og jan sQ ikke liiige se hvor det sQ være :S
22. juni 2003 - 17:33
#11
hvordan siger du chat_hidein.php skal se ud??
22. juni 2003 - 17:34
#12
og skal chat hide se sådan ud: <html> <head> <script> chatHTML = ' <? $res_chat = mysql_query("SELECT * FROM minichat3_txt_".$brugerinfo[id]." order by id DESC"); while ($row_chat = mysql_fetch_array($res_chat)){ // Fejl($brugerinfo[ignore_list].",".$row_chat[fra_id].""); if (!strstr($brugerinfo[ignore_list], "$row_chat[fra_id],") || $row_chat[fra] == "System"){ if ($row_chat[fra] != "System") { $row_chat[msg] = ereg_replace($brugerinfo[nick],"<font color='FF9900'><b>$brugerinfo[nick]</b></font>",$row_chat[msg]); } ?>'; if (parent.frames['chatvis'].opdaterSpan) { parent.frames['chatvis'].opdaterSpan(chatHTML); setTimeout("self.location.reload(true)",2000); } </script> </head> <body> </body> </html> ??
Slettet bruger
22. juni 2003 - 17:36
#13
spidr>> Hvad med at prøv :0) jeg har lige fået ahv's metode til at virke..
22. juni 2003 - 17:38
#14
westhi>>> hmm sys jeg har prøvet det hele :S Ka bare ikke liige få det til at virke :)
22. juni 2003 - 17:40
#15
westhi>> men så kan du vel også giv emig et eks. på hvordan chat_hidein.php og chat_hide.php ser ud??
Slettet bruger
22. juni 2003 - 17:42
#16
bare start med at lav et enkelt hurtigt udtræk.. det behøves ikke være det helt store fra starten af jo... $getmsg = mysql_query("SELECT * FROM msg"); while($row = mysql_fetch_array($getmsg)){ print $row[afsender].": ".$row[msg]."<br>"; } sådan testede jeg det.. det virkede, og nu udbygger jeg det :)
22. juni 2003 - 17:44
#17
Tjoh men nu har jeg jo allerede lavet en chat med mange funktioner og vil meget gerne have det der no blink til integreret i det :) kan du ikke hvis mig hvordan dine chat_hidein.php og chat_hide.php ser ud?? Så tror jeg jeg kan klare det :)
Slettet bruger
22. juni 2003 - 17:47
#18
min chat hide ser sådan her ud.. jeg har ikke lavet videre på den :D enklere blir det ikke <? include("config.php"); $getmsg = mysql_query("SELECT * FROM chat_msg"); ?> <html> <head> <script> chatHTML = '<?while($row = mysql_fetch_array($getmsg)){print $row[sender].": ".$row[msg];}?>'; if (parent.frames['chatvis'].opdaterSpan) { parent.frames['chatvis'].opdaterSpan(chatHTML); setTimeout("self.location.reload(true)",2000); } </script> </head> <body> </body> </html>
22. juni 2003 - 17:48
#19
Fatter ik hva han mener med: chatHTML = 'HER SKAL DIT UDTRÆK VÆRE'; og Vores sidste side chat_hidein.php er blot en side hvor vi indsætter i databasen. :S
Slettet bruger
22. juni 2003 - 17:48
#20
og chat_hidein.php har jeg slet ikke lavet endnu
22. juni 2003 - 17:51
#21
Men din virker uden chat_hidein.php ???
Slettet bruger
22. juni 2003 - 17:52
#22
ja for jeg skrev bare beskederne direkte ind i db'en for at teste :)
22. juni 2003 - 17:52
#23
Ser den her chat-hide.php rigtig ud: <html> <head> <script> chatHTML = ' <? if ($row_chat[fra] == "System"){ if ($row_chat[type] == 1){ print "<div CLASS='private'><b>($row_chat[fra] -> $row_chat[til]):</b> $row_chat[msg]</div>\n"; } else { print "<div CLASS='system'><b>$row_chat[fra]:</b> $row_chat[msg]</div>\n"; } } else { if ($row_chat[type] == 1){ print "<div CLASS='private'><b>($row_chat[fra] -> $row_chat[til]):</b> $row_chat[msg]</div>\n"; } elseif ($row_chat[type] == 2){ print "<div CLASS='emote'><i><b>$row_chat[fra] </b> $row_chat[msg]</i></div>\n"; } else { print "<div CLASS='normal'><b><font color=".$row_chat[name_color].">$row_chat[fra]:</font></b> <font color=".$row_chat[text_color].">$row_chat[msg]</font></div>\n"; } }?>'; if (parent.frames['chatvis'].opdaterSpan) { parent.frames['chatvis'].opdaterSpan(chatHTML); setTimeout("self.location.reload(true)",2000); } </script> </head> <body> </body> </html>
Slettet bruger
22. juni 2003 - 18:04
#25
nej den ser ikke rigtig ud hvor er selve udtrækket og inkluderer du nogle db passwords osv?
22. juni 2003 - 18:05
#26
oog nej de ligger jo stadig i den andne :S:S Lolda er vidst liidt træt :D
22. juni 2003 - 18:15
#27
men det hjælper ikke :S ka ikke få det til at virke :(
12. november 2005 - 16:39
#28
Nu er det godt nok et gammelt spørgsmål... Men er jeg den eneste der har problemer med at den stadig blinker i FireFox ?
Vi tilbyder markedets bedste kurser inden for webudvikling