Jag har för mig att Server.Execute är bra om du tex har flera case pga att alla includefiler laddas när du kör sidan.
Ex.
I detta fall laddas alla includer in oavsätt case:
<%sida=request("sida")
select case sida
case "index.asp"
%><!--#include file="index.asp"--><%
case "gohome.asp"
%><!--#include file="gohome.asp"--><%
end select
%>
Här laddas endast den som ligger i qs:
<%sida=request("sida")
select case sida
case "index.asp"
Server.execute("index.asp")
case "gohome.asp"
Server.execute("gohome.asp")
end select
%>
Och, du spar "<%%>" och det ser ju MYCKET snyggare ut. :p
Det ena är ju iofs inte samma sak som det andra.
Du har tex inte tillgång till kod, funktioner och variabler som deklareras på sidan som körs vid Server.execute.
Mao beror även användandet av de olika sätten på vad man ska uppnå.
Med IIS 5.0 medföljer också en ny version av ASP, 3.0. Två av de mest användbara metoderna där är Server.Transfer och Server.Execute. Metoden Transfer används för att göra en omdirigering av besökaren till en ny sida. Det traditionella sättet att göra det på är att använda Response.Redirect. Skillnaden mellan dessa två är att med Transfer så sker omdirigeringen direkt på servern, och därför går betydligt snabbare. Användaren märker därmed aldrig att en omdirigering skett. Samma namn visas fortfarande i adressfönstret.
Dessutom kan html-kod på den första sidan skrivas ut, och när omdirigeringen har skett så tar nästa sida vid och fortsätter att fylla på med innehåll. Intrycket blir att dessa smälter samman till en enda sida. All den formulärdata som skickats till den första sidan nås från den andra sidan. Det gör att man slipper besvära sig med sessionsvariablar och dylika konstruktioner.
En liknande metod är Transfer. När den anropas utförs den sida som angetts, och sedan returneras man till den ursprungliga sidan. Även här har man tillgång till det data som skickats till sidan. Man kan tänka på Transfer som en subrutin, med fördelen att koden ligger på en separat sida. Det här underlättar avsevärt återanvändandet av kod för sådant som återkommer på många ställen på webbplatsen. Visst har man tidigare kunnat inkludera filer, men då har man också varit bunden till att lägga det överst på sidan. Server.Transfer kan förekomma var som helst i koden.
RED: Nu har jag snudd på ändrat hit o dit så nu vet jag inte vad som gäller...
Ja, så länge du använder en filändelse som gör att asp-tolken parsar filen så är det lugnt, då har du samma säkerhet som vilken annan asp-fil som helst.
mvh,
249 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e