Avatar billede medievil Nybegynder
18. februar 2003 - 19:39 Der er 11 kommentarer og
1 løsning

Refresh i ASP/HTML chat uden blink og lyd !

Hejsa !

Jeg har et stort problem ! Jeg har lavet en 3D chat, og i denne chat refrehser jeg hele tiden, fordi man skal jo se når der sker noget :o) mit problem er at de ikke ser så fedt ud når der hele tiden kommer en hvid skærm ! I chatten bruger jeg meget HTML funktionen DIV da det er nemt at sætte ting over hele siden !

Mit spørgsmål er så: Kan de lade sig gøre at fjerne det og stadig kunne vise HTML funktionen DIV i den usynlige frame ?

En anden ting: Jeg har lavet felter som Hot Spot :o) og når man så klikker på et kan man se Hot spottet ! Kan jeg gøre så det ikke bliver markeret?

Det skal lige siges at jeg har kigget på andre spørgsmål men uden held !

Venlig Hilsen Dennis
Avatar billede mortrr Praktikant
18. februar 2003 - 20:14 #1
Ja - det kan lade sig gøre ved at du fx henter et nyt javascript med de indlæg der skal vises.

Hvis du har en
<script id="hentnyt" src="jsChats.asp"></script>
kan du hver xx sekund ændre src med
newDate=new Date();
document.getElementById("hentnyt").src="jsChats.asp?t="+newDate.valueOf;
(?t=... er for at den ikke cacher filen)

jsChats.asp skal så indeholde jscript kode til at opdatere indlægene på skærmen.
Det kan være som en stor klump tekst
chatDiv.innerHTML="en række linier med <br> linieskift";
eller med funktioner som ændrer linie for linie.

Jeg er doven, så jeg viser kun et eksempel på den nemme:

Du laver jsChats.asp med fx:
<%
'et eller andet til at hente indlæg
ChatLinier="en række linier med <br> linieskift";
%>document.getElementById("ChatDiv").innerHTML="<%=ChatLinier%>";
<%
' Det var det
%>

Den med Hot spots:
Brug onclick til at "blurre" dit hotspot.
onclick="this.blut();"

- Morten
Avatar billede medievil Nybegynder
18. februar 2003 - 20:31 #2
Det ser godt ud men jeg tror ikke det virker helt ! Sådan her ser det ud når jeg henter figueren til brugeren:

<!-- Users -->
<%
'//Database forbindelse
Set connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../../database/db.mdb")
sql = "select * From chat where roomid = " & Session("roomID") & "  ORDER BY felt desc"
Set rs = Server.CreateObject("ADODB.Recordset")
set rs = Connect.execute(SQL)

count = 50
While not rs.eof and count > 0
count = count -1

session("kon") = rs("kon")
%>
<DIV id=humor
style="z-index: 100; background-repeat: repeat; background-attachment: scroll; left: <%= rs("left") %>; width: 48; position: absolute; top: <%= rs("top") %>; height: 94; background-position: 0% 50%"
align=center name="bruger">
<font color="#000000">
<img border="0" src="gfx/<%= session("kon") %>_<%= rs("humor") %>.gif">
</font>
</DIV>
<DIV id=haar
style="z-index: 100; background-repeat: repeat; background-attachment: scroll; left: <%= rs("left") %>; width: 48; position: absolute; top: <%= rs("top") %>; height: 94; background-position: 0% 50%"
align=center name="bruger">
<font color="#000000">
<p align="left"><img border="0" src="gfx/haar/<%= session("kon") %>_<%= rs("haar") %>.gif"></p>
</font>
</DIV>
<DIV id=hoved
style="z-index: 100; background-repeat: repeat; background-attachment: scroll; left: <%= rs("left") %>; width: 48; position: absolute; top: <%= rs("top") %>; height: 94; background-position: 0% 50%"
align=center name="bruger">
<font color="#000000">
<img border="0" src="gfx/hoved/<%= rs("hoved") %>.gif">
</font>
</DIV>
<DIV id=toj
style="z-index: 100; background-repeat: repeat; background-attachment: scroll; left: <%= rs("left") %>; width: 48; position: absolute; top: <%= rs("top") %>; height: 94; background-position: 0% 50%"
align=center name="bruger">
<a href="showuser.asp?id=<%= rs("brugerid") %>" target="info">
<font color="#000000">
<img border="0" src="gfx/toj/<%= session("kon") %>_<%= rs("toj") %>.gif" alt="<%= rs("brugernavn") %>">
</font>
</a>
</DIV>
<%
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
Connect.Close
set Connect = Nothing
%>
<!-- Users End -->

Det skal lige siges at jeg ikke er den største javascript nørd !
Avatar billede medievil Nybegynder
18. februar 2003 - 20:33 #3
Det med hot spots: Den viser fejl ! Skal der ikke sættes en kode ind længere oppe?
Avatar billede mortrr Praktikant
18. februar 2003 - 20:35 #4
Duh:
onclick="this.blur();"

jeg kigger lige på det andet.
Avatar billede medievil Nybegynder
18. februar 2003 - 20:35 #5
Okay :o)
Avatar billede medievil Nybegynder
18. februar 2003 - 20:36 #6
Det med hot spot virker :o)
Avatar billede mortrr Praktikant
18. februar 2003 - 20:55 #7
Det bliver en noget kringlet gang javascript der skal til for at opdatere den.
Jeg lagde ikke lige mærke til at du skrev 3D-chat.

Men det kan da lade sig gøre, det kommer bare til at tage lidt tid at lave den.

Først skal alle dine div'er have et unikt ID.
Det kan du gøre med fx:
<DIV id="humor<%= rs("brugerid") %>"

Nu kan du med javascript flytte rundt på dine "avitars" ved at ændre på fx
document.getElementByID("humor3").style.left=xxx

Du kan slette en bruger der har forladt rummet med
divUdenomBrugerne=document.getElementByID("divUdenomBrugerne");
divUdenomBrugerne.removeChild(document.getElementByID("humor3"))

Og oprette en ny bruger med
newUserHumor=document.createElement("DIV");
newUserHumor.id="humor"+nyid;
newUserHumor.style.position="absolute";
newUserHumor.innerHTML="<img src=.....>";
divUdenomBrugerne.appendChild(newUserHumor);
osv

Meen - det bliver jo en ordentlig omgang.

Du kan jo også sætte et metatag ind i på siden, der i det mindste i IE får den til at vente med at vise noget indtil den er færdig med siden.
<META http-equiv="Page-Enter" CONTENT="RevealTrans(Duration=0, Transition=4)">

Og så selvfølgelig sørge for at siden er så lille som mulig (i en iframe), og med så pæn html som muligt.

- Morten
Avatar billede mortrr Praktikant
18. februar 2003 - 20:56 #8
Morten altså - det hedder avatars
Avatar billede medievil Nybegynder
18. februar 2003 - 20:58 #9
Kan du ikke prøve at lave et eksempel ! Det lyder meget indviklet !

Kan jeg ikke bare smide det hele ind i en side ! og så sige at den skal hente den side ?
Avatar billede medievil Nybegynder
18. februar 2003 - 21:00 #10
Altså jeg har lavet så den logger personen ud osv. Den skal bare ikke blinke når den refresher
Avatar billede mortrr Praktikant
18. februar 2003 - 22:05 #11
Jamen det ER indviklet.

Og jo. Selvfølgelig kan du bare hente den i en anden side.
Lav en iframe
<iframe src="hentchat.asp" name="hentChat"></iframe>
hentchap.asp skal indeholde alt det du udskriver i din
While not rs.eof and count > 0
inden i en
<body onload="parent.visChat(this)">
(og med en <meta http-equiv="refresh... eller hvad du bruger til at refreshe chatten med i dag)

I den nuværende side skal du så have et visChat script, og din while not rs.eof... skal ud. Der skal bare være en div med en id, som du kan referere til og proppe det nye indhold i. Lad os sige den hedder
<div id="divChat"></div>
<script>
function visChat(newBody) {
  document.getElementById("divChat").innerHTML=newBody.innerHTML;
}
</script>

- Morten
Avatar billede medievil Nybegynder
18. februar 2003 - 22:16 #12
Hmm ! Jeg tror jeg er ved at fange det nu ! Desværre har jeg ikke tid til at afprøve det, men når jeg går igang skal det nok virke ! Du har hvert fald givet mig ideen !
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester