Dim
Hej.
Att Dimma samtliga variabler på sidan snabbar upp förfarandet.. :)
ps. Sjuste att du ställer upp för wF, Tack! :bire
3 svar · 321 visningar · startad av aleborg
Jag håller på med en site där jag har byggt upp alla sidor med minimal kod och en sida som heter functions.asp som jag includar på alla sidor.
I functions.asp har jag flera olika functions och subbar som jag kallar på från övriga sidor. Informationen läggs oftast in i olika arrays och visas på sidorna. Om jag jämför med en del tidigare sidor jag gjort som är liknande så har jag dragit ner på antalet kod-rader med ca 95% per sida eftersom jag kan återanvända alla functions och subbar.
Vad finns det mer man kan göra för att öka prestandan?
Man skulle kunna ta alla functions och subbar och skapa ett COM object ganska enkelt förmodar jag!
Ett EX på kod:
functions.asp
' Get guestbook messages
'-----------------------------------------------------------------------------------------------------
Function Guestbook(id)
'Open DB
'-------------------------------------------------------------------------------------------------
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Mysql};Server=localhost;Database=Databasen;UID=user;PWD=pass"
SQL="Select GbookID, Gbook_Bel, Gbook_From, Gbook_Message, Gbook_Time From Guestbook Where Gbook_Bel="& id &" Order By Gbook_Time DESC"
Set gbo = Conn.Execute(SQL)
arrgbo = gbo.getrows
gbo.close
Set gbo = Nothing
Conn.Close
Set Conn=Nothing
Guestbook= arrgbo
End Function
sida.asp
myArr = Guestbook(Request.QueryString("user"))
numMessages = UBound(myArr, 2)
For iRowLoop = 0 to numMessages
Response.Write myArr(1, iRowLoop)
Response.Write myArr(2, iRowLoop)
Response.Write myArr(3, iRowLoop)
Response.Write myArr(4, iRowLoop)
Next
Dim
Hej.
Att Dimma samtliga variabler på sidan snabbar upp förfarandet.. :)
ps. Sjuste att du ställer upp för wF, Tack! :bire
Istället för att ha en funktion som är specialinriktad skulle jag nog skapa en global för hämtning av data... t.ex:
Function getDbRows( strCon, strSql )
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strCon
Set gbo = Conn.Execute( strSql )
arrgbo = gbo.getrows
gbo.close
Set gbo = Nothing
Conn.Close
Set Conn=Nothing
getDbRows = arrgbo
End Function
Vad finns det mer man kan göra för att öka prestandan?
Det finns inget som säger att funktioner och subrutiner skulle snabba upp ett script. All kod i funktionerna körs ju också...
Det enda som kan bevisa det är ett prestandatest med ex. Homer.
Rent generellt så är det olika contextswitchningar som slöar ner dvs. hopp mellan olika programinstanser, objekt med mera.
Databashanteringen är nog det man kan maximera mest på, rätt struktur, stored procedures osv.
Fast ett prestandatest är det enda som kan svara på detta.
/T