webForumDet fria alternativet

Bra sätt att programmera på?

ASPur ASP

3 svar · 321 visningar · startad av aleborg

aleborgMedlem sedan jan. 20013 341 inlägg
Frågan#1

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
PallemanMedlem sedan dec. 2000557 inlägg
#2

Dim

Hej.

Att Dimma samtliga variabler på sidan snabbar upp förfarandet.. :)

ps. Sjuste att du ställer upp för wF, Tack! :bire

Vides avatarVideMedlem sedan dec. 19998 577 inlägg
#3

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
Toonsters avatarToonsterMedlem sedan feb. 20001 590 inlägg
#4

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

138 ms totalt · 3 externa anrop · v20260731065814-full.58439ac5
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)