I en tidigare tråd fick jag hjälp med att plocka fram besöksstatistiken på en sajt med xmlhttp samt leta upp ett siffervärde och presentera det i stället för en egen räknare som ändå inte visar samma siffror som den officiella statistiken. Frågan är om det belastar servern mycket att ha denna koden på indexsidan att köras varje gång sidan visas? Eller ska man skriva värdet till t.ex. en infogad textfil som uppdateras med jämna mellanrum? Finns det några säkerhetsmässiga eller andra aspekter på att hämta värdet på detta sätt? Jag infogar koden: Att göra det varje gång låtter jobbigt för servern, gör istället så att du i nå'n application-variabel spara aktuellt datum när du uppdaterar värdet i text-filen (som du skall skapa å inkludera...) och varje gång sidan anropas så kollas om datumet är för gamalt eller inte... Om det är för gamalt så uppdateras datumet + att filen uppdateras... Se till att datumet fixas först bara... :) Problemet är att din sida måste skicka en request, vänta på svar och ta emot resultatet. Så det kommer var kommer ta längretid än nödvändigt. OK, tackar för svaren. Det blir nog någon form av intervall mellan uppdateringarna. DAtumet kan man ju använda för lite annan statistik.Påfrestande kod
<code>
<%
dim objXMLHTTP, strHTML
set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.open "GET", "http://stats3.ballou.se/scripts/stat.pl?action=visa&id=xxxxx&pass=yyyyy&info=z", false
objXMLHTTP.send
strHTML = BinToText(objXMLHTTP.responsebody, 32000)
set objXMLHTTP = nothing
Function BinToText(varBinData, intDataSizeInBytes) ' as String
Dim objRs
Const adFldLong = &H00000080
Const adVarChar = 200
Set objRS = CreateObject("ADODB.Recordset")
objRS.Fields.AppEnd "txt", adVarChar, intDataSizeInBytes, adFldLong
objRS.Open
objRS.AddNew
objRS.Fields("txt").AppEndChunk varBinData
BinToText = objRS("txt").Value
objRS.Close
Set objRS = Nothing
End Function
StartPos = InStr(StrHTML,"Sammanlagt ") +11
StopPos = InStr(StrHTML," besök")
AntalTecken = StopPos-StartPos
IntCount = Mid(StrHTML,StartPos,AntalTecken)
If IsNumeric(IntCount) Then
IntCount = CLng(IntCount)
End If
Response.Write(IntCount)
%>
</code>Sv: Påfrestande kod
Sv: Påfrestande kod
Sv: Påfrestande kod