webForumDet fria alternativet

Menysystem, vilket är snabbast?

ASP

6 svar · 247 visningar · startad av Cmart

Medlem sedan feb. 200269 inlägg
Frågan#1

Jag håller på att bygga ett menysystem där innehållet varierar beroende på vilken värde en variabel(linkID) får via querystring.

Vilket är snabbast?

Select case linkID

case "1"

massa htmlkod

case "2"

massa htmlkod

case "3"

osv

end select

eller

Samma som ovan fast med includefiler

case "1"
<!-- #INCLUDE FILE="../include/link1.asp" -->
case "2"
<!-- #INCLUDE FILE="../include/link2.asp" -->

osv.

eller

samma som ovan fast med Server.Execute

eller finns det något snabbare sätt än att köra Select Case?

Medlem sedan mars 20023 561 inlägg
#2

Din variant två fungerar ju inte. Isåfall får du göra så här:

Select Case "1"
     %><!--#include file="../include/link1.asp"--><%
     osv...
End Select

Kontextändringar slöar ner koden. Alltså är det att föredra så få kontext-swichningar som möjligt. Alltså skulle nog jag använda Server.Execute("<fil>").

Medlem sedan feb. 200269 inlägg
#3

Jag orkade i hastigheten inte skriva ut kontext-switchar osv..

Men vinner man något på att inte skriva ut kod mellan case utan istället ha include-filer eller Server.Execute?

Dvs läser webservern "igenom" koden mellan varje "case" eller "hoppar" den direkt till rätt case-sats?

Medlem sedan mars 20023 561 inlägg
#4

Har faktiskt inte så bra koll på hur det är med om den läser de andra ändå fast det inte behövs.

Det här med att lägga in hela koden i Select-blocket: Om det är kod som förekommer på många ställen på siten, då blir det jobbigt om du behöver ändra på alla ställen istället för att bara ha en fil som du inkluderar på alla dina sidor.

Medlem sedan mars 20015 287 inlägg
#5

Jag skulle även ta hänsyn till hur pass mycket kod det är du ska inkludera i dina select case. Är det inte så mycket så blir väl det smidigare att hålla på med istället för en massa lösa filer. Dock skulle jag kalla på en sub i din select case- = mer översiktigt imho.

Medlem sedan dec. 20003 887 inlägg
#6

Så här skulle jag försöka få det...

Select Case Hirr
  Case 'Banan'
    Server.Execute('/banan.asp')
  Case Else
    Server.Execute('/kaffe.asp')
End Select

Jag tror inte det finns mycket i hastighet att tjäna här, men om man tänker på vad man kan spara in på så är ju det filanrop. D.v.s. om all kod ligger i en fil blir det rimligtvis färre anrop till filer. Jag skulle iofs ändå dela upp det hela i fler filer.

Medlem sedan aug. 20012 349 inlägg
#7

värt att notera är att det första som kompilatorn gör är att inkludera includefilerna. Sen startas kompileringen av koden.

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)