L@rs skrev:
> Men jeg kan ikke rigtig forstå det du skriver ang. alle
> hendelserne bliver afviklet hvis man brug "if"
Nej - det er ikke det jeg skriver.
Pointen er at inkludering af kode med SSI (<!--#include...-->)
foretages før asp-koden fortolkes.
Eksempel:
default.asp:
<%
side = Request.Querystring("side")
If side = "a" Then
%>
<!-- #include file = "fil1.asp" -->
<% ElseIf side = "b" Then %>
<!-- #include file = "fil2.asp" -->
<% Else %>
<!-- #include file = "fil3.asp" -->
<% End If %>
fil1.asp:
<p>Her er indholdet i fil nr. 1</p>
fil2.asp:
<p>Her er indholdet i fil nr. 2</p>
fil3.asp:
<p>Her er indholdet i fil nr. 3</p>
Hvis man kalder default.asp?side=b, sker der følgende:
Først behandler SSI-parseren filen og henter alle inkluderede
filer. Den side som asp-parseren "ser", svarer derfor til en fil
hvor man erstatter inkluderingerne med indholdet af filerne:
default.asp*:
<%
side = Request.Querystring("side")
If side = "a" Then
%>
<p>Her er indholdet i fil nr. 1</p>
<% ElseIf side = "b" Then %>
<p>Her er indholdet i fil nr. 2</p>
<% Else %>
<p>Her er indholdet i fil nr. 3</p>
<% End If %>
Når includefilerne er hentet, behandler asp-parseren asp-koden og
vil derfor udskrive:
<p>Her er indholdet i fil nr. 2</p>
- til browseren (helt som ønsket). Problemet er bare at man får
hentet en masse indhold der ikke er brug for (med så små filer som
i eksemplet her, er det underordnet, men hvis man fx har længere
tekster der inkluderes er der et problem).
En anden måde at illustrere at inkludering foregår før fortolkning
er med følgende lille testside:
<%
If Now > Rundetårn Then
Skriv en fejlmeddelelse
End If
%>
<!--#include file="findes.ikke.asp"-->
Der er fejl i den første asp-linje, og asp-parseren vil derfor
stoppe så snart den ser den. Men hvis man prøver at køre filen, er
det den manglende includefil der vises som fejlårsag.
NB: Læs gerne min signatur.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html