1
Tags:
asp
Skrevet af
Bruger #15158
@ 29.09.2009
Besøgstællere findes på mange hjemmesider, og giver både ejer og brugere et hurtigt overblik over trafikken på siden.
Hvorvidt det aktuelle besøgstal er relevant for brugeren, kan så diskuteres. Men det er naturligvis op til den enkelte at bestemme.
Simpel tællerEn simpel tæller kan laves ved at registrere, når en bruger klikker sig ind på siden - og så gemme tallet i en tekstfil.
Dim intCount
Dim strObject
Dim logFile
Dim filePath
Set strObject = CreateObject("Scripting.FileSystemObject")
filePath = Server.Mappath("/path til tekstfil/tekstfil.txt") 'Sti til tekstfilen.
if strObject.FileExists(filePath) = false then 'Det undersøges om tekstfilen eksisterer.
'Hvis ikke - oprettes den med tælleren på 0.
strObject.CreateTextFile(filePath)
Set logFile = strObject.OpenTextFile(filePath,2)
intCount = 0
logfile.WriteLine intCount
logFile.Close
end if
Set logFile = strObject.OpenTextFile(filePath,1) '1 = Filen åbnes for læsning.
intCount = logFile.ReadLine 'Første linie i tekstfilen læses.
intCount = intCount + 1 'Der lægges 1 til tælleren.
logFile.Close
Set logFile = strObject.OpenTextFile(filePath,2) '2 = Filen åbnes til skrivning.
logfile.WriteLine intCount
logFile.Close
Set strObject = Nothing
Set logFile = Nothing
Set filePath = Nothing
Response.write intCount 'Tælleren skrives ud et sted på siden.
Set intCount = Nothing
Dette er en meget simpel måde at gøre det på. Men den tæller den op, hver eneste gang der bliver klikket ind på siden.
Også hvis siden blot bliver opdateret.
Det kan dog undgåes ved at indlægge en Session. Og så ser koden således ud:
Dim intCount
Dim strObject
Dim logFile
Dim filePath
if not Session("olduser") = "yes" then 'Hvis det er en ny bruger.
Session("olduser") = "yes"
Session.Timeout = 60
'Her indsættes resten af koden.
Set strObject = CreateObject("Scripting.FileSystemObject")
filePath = Server.Mappath("/path til tekstfil/tekstfil.txt")
if strObject.FileExists(filePath) = false then
strObject.CreateTextFile(filePath)
Set logFile = strObject.OpenTextFile(filePath,2)
intCount = 0
logfile.WriteLine intCount
logFile.Close
end if
Set logFile = strObject.OpenTextFile(filePath,1)
intCount = logFile.ReadLine
intCount = intCount + 1
logFile.Close
Set logFile = strObject.OpenTextFile(filePath,2)
logfile.WriteLine intCount
logFile.Close
end if
'Hvis ikke det er en ny bruger.
Set logFile = strObject.OpenTextFile(filePath,1)
intCount = logFile.ReadLine
logFile.Close
Set strObject = Nothing
Set logFile = Nothing
Set filePath = Nothing
Response.write intCount 'Tælleren skrives ud et sted på siden.
Set intCount = Nothing
Der bliver undersøgt om det er en ny bruger, der klikker ind på siden. Hvis det er tilfældet, bliver der skrevet en Session-Cookie hos brugeren.
En Session-Cookie lægger sig i hukommelsen, og slettes automatisk, når brugeren lukker sit browserwindue.
Som standard slettes en Session også efter 20 minutter. Men hvis du forventer, at den enkelte bruger vil befinde sig på din side i længere tid, kan du ændre udløbstiden.
I dette tilfælde er udløbstiden sat til 60 minutter.
Du skal dog være opmærksom på, at mange Sessions på samme tid belaster din server enormt. Så du skal ikke sætte udløbstiden længere end højst nødvendigt.
* * * * *
Grafisk tæller.Ovenstående er som sagt en simpel tæller, der blot skriver et tal et eller andet sted på siden. Ikke ligefrem noget at råbe hurra for.
Men den kan selvfølgelig peppes op ved at tilføje noget grafik.
Der findes et hav af flotte tællere ude på nettet, og mange af dem er det også muligt at finde både kode og grafik til.
Jeg har selv lavet en udgave, som har form af et manometer med viser og tal samt indeværende måned.
Den er oprindelig kun lavet som et forsøg og er ikke benyttet på nogen hjemmeside.
Min tanke var så senere at udbygge den med en form for statistik, hvor jeg måned for måned - år for år - kunne følge trafikken på min hjemmeside, og eventuelt kalde det frem via et Javascript.
Men det er ikke rigtig blevet til noget.
Hvis du kan bruge tælleren, må du selv bygge videre på den.
Grafikken er gemt som PNG-filer og består af selve manometeret, hvorpå måned og tal bliver indskrevet i de respektive felter.
Ovenpå bliver så lagt viseren, hvor baggrunden er gjort transparent.
Viseren flytter sig med et interval på 20, så ialt er der udviklet 51 visere med hver sin position.
Om der findes en nemmere måde at gøre det på, eventuelt ved at rotere billedet, aner jeg ikke. Jeg har ikke kunnet finde noget om emnet.
Så jeg gik den tunge gang.
Et eksempel på tælleren i funktion kan ses her:
Manometer
Vedhæftede filer:
Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.
Del også gerne artiklen med dine Facebook venner:
Kommentarer (3)
Jeg troede at ASP var noget nær uddød?
Hej Martin.
Det er sikkert også kun et spørgsmål om tid. Og det er ret beset kun dovenskab der har bremset mig i at gøre noget mere ved eksempelvis PHP.
(
Nu har jeg i så mange år skrevet i ASP, så det ....)
Men det var ligesom dengang med videobåndet. Selvom VHS for længst havde vundet kampen, var vi stadig nogle få naive fjolser, der forsøgte at holde liv i Betamax'en.
MrLES
Har du overvejet ASP.NET istedet?
Jeg programmere selv i ASP.NET og er lykkelig for det, af samme grund finder jeg ikke din artikel interessant og har derfor ikke rated den.
MVH Jeppe.
Du skal være
logget ind for at skrive en kommentar.