"Hans" <htddam@hotmail.com> skrev i en meddelelse
news:b2gqnm$ash$1@sunsite.dk...
> Jeg skrev et indlæg i går aftes, som var alt for dårligt
> forklaret. Så jeg prøver lige en gang til.
>
> Jeg vil gerne have lagt et komponent ind på min bruger sektion,
> hvor man kan se hvor mange brugere der er online. Jeg har fået
> lavet det meste, men jeg mangler lige en lille detalje.
> Resultatet for hvor mange brugere der er online ligger i en
> database.
> Jeg har set dette komponent (
http://www31.brinkster.com/hansis/
> ) det er et ur som bliver opdateret hvert sek. i en .JS fil, men
> ikke på den side hvor filen er sat ind på. Dette ville jeg gerne
> kunne overføre til at en database der skulle blive læst hvert
> sek. for nyt indhold, og så skrive hvis der kommer noget nyt
> indhold ( i dette tilfælde en ny online bruger ).
>
> Kan man det? eller er der en anden måde, hvor jeg ikke behøver at
> opdatere hele "Index" siden?
>
> På forhånd tak....
>
> - Hans
Hej Hans
Som du sikkert allerede har konstateret så er problemet ikke så meget at
registrere i databasen at en bruger er ankommet til sitet, men snarere at
finde ud af om brugere har lukket sin browser! Så i tilfælde af at du ikke
allerede kender til anvendelsen af global.asa filen og applikations objektet
til at gøre det væsentligt enklere at vedligeholde antallet af besøgende på
en web applikation får du lige dette link.
http://www.asp101.com/resources/active_users.asp
Løsningen på dit problem er at få loadet dit serverside script i en iframe
eller bare i en almindelig skjult frame, men før du gør det skal du nok være
sikker på om det virkelig er nødvendigt at reloade hvert sekund eller om et
længere delay ikke var at foretrække for at mindske belastningen af
serveren.
Du kan læse mere om anvendelsen af iframes til at opdatere databaser på
(tråden indeholder et udmærket eksempel)
http://www.experts-exchange.com/Web/Web_Languages/ASP/Q_20317175.html
Ellers er det lige ud af landevejen. I din hovedside (index siden som du
kalder den) opretter du et eller andet felt, der har en innerText attribut
og sætter det hvor du ønsker antallet af online brugere skal være. Du skal
huske at give feltet et id så du kan tilgå det fra den skjulte frame.
Du kan læse mere om hvilke objekter der understøtter innerText attributten
på
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/ref
erence/properties/innertext.asp
Hvis vi antager at du loader en asp fil i en iframe så skal du bare overføre
antallet af online brugere fra serverside til clientside, og derefter sætte
innerText attributten i dit felt på index side. Dette kan gøres enkelt ved
at benytte følende konstruktion. Jeg antager her at id på feltet der
indeholder antallet af online brugere er 'usersOnline'
<%'
' iframeGetOnlineUsers.asp
' dette er filen der skal loades i en frame!
Function onlineUsers()
// et eller andet der henter antallet af brugere online. Benyt evenu
End Function
%>
<script>
parent.usersOnline.innerText = '<%=getOnlineUsers()%>'
</script>
Håber det kan give dig nogle ideer til at komme videre
Venlig Hilsen
Jacob Winther
IT-C
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com).
Version: 6.0.454 / Virus Database: 253 - Release Date: 10-02-2003