Tar en sådan sökning lång tid?
Ja. VBScript är inte snabbt när det gäller filhantering, och beroende på antalet filer kan det ju ta ännu längre tid.
2 svar · 260 visningar · startad av mattiasnordin
Är det någon som har något förslag på hur man gör ett VBskript som går igenom hela webrooten och söker efter de 10 senast uppdaterade asp filerna?
Tar en sådan sökning lång tid?
Tar en sådan sökning lång tid?
Ja. VBScript är inte snabbt när det gäller filhantering, och beroende på antalet filer kan det ju ta ännu längre tid.
På de flesta sidorna har jag includerat följande fil. Tycker att den är fyndig. Håller reda på hur många besök sidan har haft samt visar när sidan är uppdaterad...
Men jag vill nu visa länkar till de nyaste sidorna direkt på startsidan. Har inte riktigt kommit på någon smidig lösning. Några ideer?
<!---== Detta skript loggar antalet klick + datumet detta skedde ==--->
<%
MyPathNfile = Request.ServerVariables("SCRIPT_NAME") 'Detta är pathen + filen. Ex /start_menu.asp
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/_special/hitstat.mdb")
' Filtrerar bort så att samma användare inte triggar räknaren förens någon annan besökt sidan i mellan
SQL4 = "SELECT * FROM hitstat "
SQL4 = SQL4 & " WHERE ID IN (SELECT MAX(ID) FROM hitstat WHERE Page = '" &MyPathNfile &"')"
Set RSlatest = Connect.Execute(SQL4)
if not RSlatest.eof then ' Recordset kommer att vara tomt första gången en sida laddas.
VarLastIP = RSlatest("IP") ' Är det senaste IP nummret för sida X i databasen
else
VarLastIP = ""
end if
VarThisIP = Request.Servervariables("REMOTE_ADDR") ' Är användarens IP nummer
if not VarLastIP = VarThisIP then
SQLinsert = "INSERT INTO hitstat "
SQLinsert = SQLinsert & "(IP, Datum, Page) "
SQLinsert = SQLinsert & "VALUES('"& VarThisIP &"','"& date &"','" &MyPathNfile &"')"
'response.write "<hr>" &SQLinsert &"<hr>"
Connect.Execute(SQLinsert)
end if
SQL = "Select Count (*) As Antal From hitstat WHERE Datum = #" &date &"#" &" AND Page = '" &MyPathNfile &"'"
Set RStoday = Connect.Execute(SQL) ' Räknar antalet hits där dagens datum = idag och sidan är X. Resultat = dagens hits för sida X.
SQL2 = "Select Count (*) As Antal From hitstat WHERE Datum BETWEEN #" &date-1 &"# and #" &date-7 &"# AND Page = '" &MyPathNfile &"'"
Set RSperiod1 = Connect.Execute(SQL2) ' Räknar antalet hits där datum = mellan igår 7 dagar och sidan är X.
SQLperiod2 = "Select Count (*) As Antal From hitstat WHERE Datum BETWEEN #" &date-7 &"# and #" &date-37 &"# AND Page = '" &MyPathNfile &"'"
Set RSperiod2 = Connect.Execute(SQLperiod2)
SQL3 = "Select Count (*) As Antal From hitstat WHERE Page = '" &MyPathNfile &"'"
Set RStotal = Connect.Execute(SQL3) ' Räknar totala mängden hits för sida x
' --- Visar när asp filen senast var ändrad ---
On Error Resume Next
Dim fs, f, ModifiedInfo
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile (Server.MapPath ("/") + MyPathNfile)
ModifiedCreated = f.DateCreated
ModifiedInfo = ModifiedInfo & " Last Accessed: " & f.DateLastAccessed
LastModifiedInfo = LastModifiedInfo &f.DateLastModified
LastModifiedInfoEdited = Left(LastModifiedInfo, 16) ' Klipper av sekunderna)
' Response.Write " File Access Info:" & ModifiedInfo
%>
<!--- Design output --->
<font size=1 face=verdana color=gray><i>
Last updated: <font color=black><%= LastModifiedInfoEdited %></font> CET, <img align="absbottom" src="/_special/pic_small_8px_reload_icon2.gif">
= <font color=black><%=RStotal("Antal")%></font> (<%=RStoday("Antal")%>)(<%=RSperiod1("Antal")%>)(<%=RSperiod2("Antal")%>)
</i></font>
<%
RSlatest.Close
Set RSlatest = Nothing
RStoday.Close
Set RStoday = Nothing
RSperiod1.Close
Set RSperiod1 = Nothing
RSperiod2.Close
Set RSperiod2 = Nothing
RStotal.Close
Set RStotal = Nothing
Connect.Close
Set Connect = Nothing
%>