Hej
Nej det fungerar att använda ssi i villkorsatser. Jag använder en liknande funktion i en butikskorg.
Om en person är medlem på sajten inkulderas filen lägg_i_korg.asp
annars inkluderas filen bli_medlem.asp
------------------
Adde
7 svar · 261 visningar · startad av eMan
Av en tidigare besvarad frågeställning ( http://cgi.webforum.nu/wf/Forum11/HTML/005199.html ) funderade jag vidare och känner att det skulle vara bra om någon kunde försöka sprida ljus i min mörka tunnel av okunskap på området.
Om man använder sig av villkorsatser för att välja vilka filer som skall köras beroende på vad användaren begär på en tidigare sida enligt följande exempel:
<% IF [villkor] = [värde1] THEN %>
<!-- #include file="testfil1.asp" -->
<% ELSEIF [villkor] = [värde2] THEN %>
<!-- #include file="testfil2.asp" -->
<% END IF %>
Hur fungerar det med ssi-filerna, interpreteras ALLA inkluderade filer då eller bara den som uppfyller villkoret? På det sätt jag tänker runt saken och med de tidigare svar jag fått, borde all kod i samtliga inkluderade filer interpreteras innan dess att villkorssatsen körs.
Med andra ord borde ovanstående kodexempel vara ganska ineffektivt, i varje fall om har ett större antal inkluderade filer?
Anledningen till min fråga hör samman med att jag försöker utreda när jag skall använda Server.Execute och när jag inte skall göra det.
Hej
Nej det fungerar att använda ssi i villkorsatser. Jag använder en liknande funktion i en butikskorg.
Om en person är medlem på sajten inkulderas filen lägg_i_korg.asp
annars inkluderas filen bli_medlem.asp
------------------
Adde
....men, precis som du skriver så inkluderas och interpreteras alla filerna, oavsett om villkoren uppfylls.
Att all kod kommer att inkluderas och skickas till ASP-motorn är jag med på, men kommer all kod verkligen interpreteras?
Om vilkoret inte är uppfyllt kommer ju ingen kod att exekveras i det vilkoret, och om man kör språk som ASP så exekveras ju koden samtidigt som den läses in...
Fast det borde ju gå att testa sig fram till om det är någon prestanda försämring, bara att låta se till så det ena vilkoret alltid är sant och sedan testa med att inkludera filerna för de andra vilkoren resp test när det inte finns några filer att inkludera...
- Magnus
[Redigerat av Gladh den 11 jul 2001]
gjorde åter ett litet test med exempel enligt ovanstående inlägg och med sju mindre filer inkluderade (alla mindre än 3 kb). Jämförde därefter laddhastigheten med Server.Execute och fann att skillnaden var obefintlig.
Detta leder till slutsatsen att ju fler rader kod som man bara använder under vissa omständigheter, desto mer befogat blir det att använda server.execute istället för ssi. Var brytpunkten går för att använda den ena tekniken framför den andra kan jag dock inte svara på i dagsläget...
Tack för klarläggandet om interpreteringen!
Om vilkoret inte är uppfyllt kommer ju ingen kod att exekveras i det vilkoret, och om man kör språk som ASP så exekveras ju koden samtidigt som den läses in...
Helt riktigt. Script-motorn kommer inte att interpretera koden, men ASP-parsern måste ta hand om den, i alla fall.
Var brytpunkten går för att använda den ena tekniken framför den andra kan jag dock inte svara på i dagsläget...
Finns det något som motiverar att använda ssi då?
/JANspeed
Det är snabbare om man bara har ett fåtal mindre filer att inludera.