24. februar 2002 - 00:30Der er
44 kommentarer og 1 løsning
Reload uden klik
hej jeg er igang med en chat men har det problemet at hver gang den henter chat sidens indhold kommer der en klik lyd hvilket driver en til vanvid efter som at den opdaterer hvert sekund vær venlig at hjælpe hvis der findes en måde
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.
hehehe, har lige haft samme problem. Dette kan gøres ved at bruge din normale rehresh. det kræver dog bare at du åbner chatten i et nyt vinue uden scrollbars osv.
Det gjorde jeg og fik en masse glade brugere ud af det :)
Hvis jeg forstår colg ret så er han programmør og har lavet en chat. I denne chat opdateres en frame hvert 5. sek. el. Det han nu vil undgå er at brugerne hører denne "klik-lyd" hver gang frame'en reloades. - har jeg forstået dig ret colg?
Hvis det er som jeg har forstået det så kan det ikke lade sig gøre! - det eneste du kan gøre er at anbefale brugerne til enten at slå lyden fra ved at gøre som metal_hansen skriver.
repsac >>> colg er ikke online lige nu.... men vi arbejder sammen om at lave den chat.... det script du kommer med er sikkert meget godt... men det er i php og den chat vi laver skal være i asp..
Krisbjoern tja der er en af siden i framesettet der står og klikker (og blinker :(() hvert sekund (for at hente chattens indhold) så det vi mangler et en måde at få lyden væk på elller/og fjerne blinket jeg ved at det er muligt hvis ik i asp så i DHTML eller noget andet for jeg ved at jubii chatten står ik og blinker eller klikker da jeg har chattet der siden 97 håber den metode findes på forhånd tak
repsac du har ret men det må være muligt jeg ved at jubii ik klikker ved så til gengæld ik om de bruger en hel anden måde oki de bruger DHTML og vi bruger asp så der er jo en forskel men princippet er at det må på en eller anden måde være muligt om vi så skal om programmere hele chatten
Jeg har selv lavet en chat hvor jeg henter den side ind(den side der skal opdateres for at hente indholdet) i et anden ASP-dokument. Altså ved brug af SSI. noget i stil med
browseren loader dette dok.(index.asp) <HTML> <HEAD><TITLE>index.asp</TITLE></HEAD> <BODY> <!--#include file="opdaterende.asp"--> </BODY>
DET ER KUN DEN OPDATERENDE fil DER SKAL STÅ OG OPDATERE MED DEN KODE DU SELV HAR SKREVET.
Måden hvorpå bioalice.dk's chat er lavet på er ved at ikke at lade side timeout og dermed være færdig med at loade. På den måde kan man blive ved med at skrive til siden uden at skulle reloade - det er hele finden. Om denne metode benyttes v.hj.a. php, asp, jsp eller... er ligemeget.
Kig på det script jeg henviser til - det er øjensynligt samme måde som jubii har lavet deres.
LÆS: DET ER KUN DEN OPDATERENDE fil DER SKAL STÅ OG OPDATERE MED DEN KODE DU SELV HAR SKREVET.
Oversat til: Index.asp-filen står JO IKKE OG OPDATERE... Det er den fil som man hiver ind(inkludere med SSI=Server Side Include) der står og opdatere...
Første fil hedder index.asp og er et frameset(denne side opdatere IKKE sig selv):
<html> <head> <title>Entale Multiplayer Online Portale</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Page-Enter" content="revealTrans(Duration=3.0,Transition=15)"> <script> <!-- denne funktion "CleanUserOnline()" der kaldes når browseren lukkes åbner et nyt vindue --> <!-- som sletter den aktuelle bruger fra OnlineNames tabellen i databasen --> function CleanUserOnline() { iwin = window.open("ClearUser.asp", "iwin", "status=no, toolbar=no, location=no, menu=no, width=5,height=5,top=5,left=5'"); } </script> </head>
<!-- Topframe indeholder kun grafisk-topbar --> <!-- OnUnLoad kalder en Javascriptfunktion "CleanUserOnline()" når browseren lukkes med krydset øverst i højre hjørne... --> <frameset rows="104,470" frameborder="NO" border="0" framespacing="0" cols="*" onunload="CleanUserOnline();"> <frame name="topFrame" scrolling="NO" noresize src="TopFrame.htm" >
<!-- Udskrift af "antal online" og deres ChatHandle i 2 frames --> <frameset cols="250,600" frameborder="NO" border="0" framespacing="0"> <frameset rows="98,600" frameborder="NO" border="0" framespacing="0"> <frame name="OnlineNumbers_frame" scrolling="NO" noresize src="ShowOnlineNum.asp" > <frame name="OnlineNames_frame" scrolling="NO" noresize src="ShowOnlineNames.asp"> </frameset>
<!-- CHAT HOVEDET. Øverste del af de ialt 3 frames som udgøre selve chatten --> <frameset cols="260,300" frameborder="NO" border="0" framespacing="0"> <frameset rows="55,500" frameborder="NO" border="0" framespacing="0"> <frame name="ChatTOP_frame" scrolling="NO" noresize src="chat_header.asp" >
<!-- Chat READ henter chat-tekst fra databasen --> <frameset rows="160,98" frameborder="NO" border="0" framespacing="0"> <frame name="ChatREAD_frame" scrolling="NO" no resize src="Chat_read.asp">
<!-- Chat WRITE - Skriver chat-tekst til databasen, her ligger også muligheden foe at ændre ChatHandle --> <frame name="ChatWRITE_frame" scrolling="NO" noresize src="Chat_write.asp"> </frameset>
</frameset>
<!-- GameList er en liste over de spil som bliver "oprettet" udbudt af entale --> <frame name="GameList_frame" scrolling="NO" noresize src="GameList.asp">
Et af de dokumenter der loades ind i framesettet(index.asp) hedder ShowOnlineNum.asp(sidden viser hvor mange brugere der er online) SIDEN OPDATERE IKKE SIG SELV men henter et andet dokument ind med <!-- #include file="inc_onlineusers.asp" --> (linie 3):
<!-- Her inkluders filen der opregner antallet af brugere og lægger dem i en applikation --> <!-- #include file="inc_onlineusers.asp" --> <style><!--#include file="../CSS/bodyLinks.css" --></style> <body rightmargin="0" topmargin="0" bottommargin="0"> <table bgcolor=#EDEDD9 border="0" width=175 height=75 align="right" align="top" cellspacing="0" cellpadding="0"><tr valign="bottom"><td> <%
'************************************************************* ' Hvor mange Brugere er online * '************************************************************* if application("usersonline") = "" then application("usersonline") = 1 end if
'En løkke der tæller hvor mange brugere der "ligger" i applikationen For i = 1 to application("usersonline") if len(application("usersonline_"&i)) then if DateDiff("s",application("usersonline_"&i),Now) > timeout_sek then application("usersonline_"&i) = "" else usersonline = usersonline+1 end if max_i = i end if next
application("usersonline") = max_i ' Gramatisk tilrettelse i udskrift af hvor mange brugere der er online samt udskrivning af selvsamme response.write" <table bgcolor=#EDEDD9 Nowrap border='0' width=100% cellspacing='0' cellpadding='0'><tr valign='bottom'><td width='6'></td>" response.write" <td>" If max_i = "1" Then response.write "<p class='o4'>" & usersonline & " GAMER ONLINE </P>" Else response.write "<p class='o4'>" & usersonline & " GAMERS ONLINE</P>" End If response.write "</td><td></td><tr><td>"
Det 3. dokument(som er det der SELV OPDATERE) hedder som nævnt ovenfor "inc_onlineusers.asp" og indeholder denne kode:
<% timeout_sek = 70 ' timeout i sekunder max_users = "500" ' max antal brugere der skal tælles cookies_check = "no" ' skal der tjekkes om browseren accepterer cookies ["yes" / "no"] Session.Timeout = 1
' Når siden loades af en ny bruger har Session("usernumber") endnu ikke nogen værdi
if session("usernumber") <> "" then application("usersonline_" & session("usernumber")) = now else ' Denne løkke sørge for en værdi i Session("usernumber") For i = 1 to max_users if IsDate(application("usersonline_"&i)) or application("usersonline_"&i) = "" then if application("usersonline_"&i) = "" then session("usernumber") = i i = max_users elseif DateDiff("s",application("usersonline_"&i),Now) > timeout_sek then session("usernumber") = i i = max_users end if end if next application("usersonline_" & session("usernumber")) = now application("userinfo_" & session("usernumber")) = "[" & Request.ServerVariables("REMOTE_HOST") & "]</td><td nowrap>[" & Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") & "]</td><td nowrap>[" & now & "]"
' Hvis værdien i Sessionen er større end værdien i applikationen ' Sættes applikationsværdien lig med sessionsværdien ' Og antallet af brugere online er øget med forskellen... if application("usersonline") < session("usernumber") then application("usersonline") = session("usernumber") end if end if
sådan som jubii chatten er lavet er at den har 4 dummy frames hvor 3 af dem er nogle som skriver til et dcom object og det sidste er en som henter linierne ind i chat framen fra dcom objectet...
Jubii chatten har selv problemer med klikken... eller de har ihvertfald haft det og de anbefalede også folk i hjælp menuen at gå ind og slå lyde fra
Næææ.... men derfor kan man jo godt læse deres koder og få nogle oplysninger alligevel... er selv igang med en chat til en mindre virksomhed som jeg er Webmaster/Webudvikler/Webdesigner/ASP-programmør og IT-konsulent for.... det eneste kode jeg ikke har set er serversiden men den kan jeg gætte mig til
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.