Styresystemet Windows 2000 Server leveres med en ny version af web-serveren Internet Information Server (IIS), 5.0. I forhold til version 4.0, der følger med Windows NT Server, er der sket adskillige forbedringer, ikke mindst indenfor ASP (Active Server Pages), en teknologi, som gør det muligt at udføre scripts på serveren.
En af de vigtigste forbedringer ligger uden tvivl i hastigheden - Microsoft hævder selv, at eksisterende ASP-applikationer kører 50-100 pct. hurtigere under Windows 2000 end under Windows NT 4.0. Denne artikel kigger på et lille udvalg af de nye muligheder, som findes i ASP under IIS 5.0.
Server.Transfer
Det er ofte nødvendigt at sende brugeren videre til en anden ASP-side. Hidtil har den eneste mulighed været metoden Response.Redirect, som sender en besked til browseren om, at denne skal kalde en bestemt URL. Problemet med Response.Redirect er bl.a., at der spildes tid med at kalde klienten, der igen skal kontakte serveren. Det ville være nemmere, hvis hele opgaven kunne klares på serveren.
Det er nu muligt med metoden Server.Transfer. Når denne metode kaldes, overføres kontrollen over output-kanalen til den nye ASP-side, der også har adgang til alle variabler i Request-samlingen. I modsætning til Response.Redirect kan Server.Transfer dog ikke kalde et dokument på en anden maskine.
Nedenfor ses et eksempel på, hvor metoden kan bruges:
side1.asp
< %
Response.Write("Denne sætning er skrevet på side 1")
Session("enVar") = "Denne variabel er sat på side 1"
Server.Transfer("side2.asp")
% >
side2.asp
< %
Response.Write(Session("enVar") & ", men skrevet på side 2")
% >
Resultatet af et kald til side1.asp er:
Denne sætning er skrevet på side 1
Denne variabel er sat på side 1, men skrevet på side 2.
Server.Execute
IIS 5.0 indeholder en anden ny metode, Server.Execute, der ligesom Server.Transfer kan bruges til at hente programkode fra en anden side, uden at sende besked til klienten om at gå til en ny URL. Server.Execute er en form for include, der henter en ASP-fil og behandler indholdet, som var det del af det aktuelle dokument. I modsætning til Server.Transfer skifter applikationen ikke til en ny side; når behandlingen af indholdet i dokumentet er afsluttet, skifter kontrollen til den gamle side.
Metoden er en nem genvej til modulære applikationer, hvor man kan undgå at gentage den samme ASP-kode på hver side, og den kan udnyttes til at lave betingede includes, hvor indhold kun importeres, hvis en bestemt forudsætning er opfyldt.
Nedenfor ses eksemplet fra før, denne gang med Server.Execute. Som det kan ses, kan vi inkludere programlogik efter kaldet til Server.Execute, fordi kontrollen over applikationen bliver på den aktuelle side.
side1.asp
< %
Response.Write("Denne sætning er skrevet på side 1")
Session("enVar") = "Denne variabel er sat på side 1"
Server.Execute("side2.asp")
Response.Write("Denne sætning er igen skrevet på side 1")
% >
side2.asp
< %
Response.Write(Session("enVar") & ", men skrevet på side 2")
% >
Bedre Browser Capabilites
ASP indeholder en komponent kaldet Browser Capabilities, der fortæller, hvilke egenskaber klientens browser understøtter. Komponenten bruger en statisk tekstfil, som programmøren selv kan opdatere med nye informationer. Denne model har en række svagheder, ikke mindst at komponenten kun returnerer informationer om default-indstillinger; de fleste browsere giver imidlertid brugeren muligheden for at ændre konfigurationen.
I IIS 5.0 kan Browser Capabilities læse en cookie, som sendes fra klienten, og bruge den til at finde frem de til nøjagtige egenskaber, som er aktiveret i browseren. En sådan cookie kan f.eks. sendes med et simpelt script på klient-siden. Applikationen kan så tilpasses klientens egenskaber.
HTML-filer gemt som .ASP
Som udvikler kan man ofte være fristet til at gemme alle sine applikationsfiler med endelsen .asp, selvom nogle filer slet ikke indeholder programkode og derfor i realiteten kunne gemmes med endelsen .htm. Problemet har hidtil været, at serveren spilder tid med at lede efter programkode i filen, hvis endelsen er .asp, mens htm-filer straks sendes ubehandlet til klienten. Det tager derfor længere tid at hente filer med .asp end med .htm, og serveren spilder ressourcer på at søge efter programkode som ikke findes.
I IIS 5.0 bliver ASP-filer uden scripts behandlet næsten lige så hurtigt som htm-filer. Hastigheden er stadig ikke helt den samme - og kan aldrig blive det, for serveren skal først indlæse filen for at undersøge, om den indeholder scripts som skal udføres - men hastighedsforskellen er blevet mindre. Det kan nu anbefales at gemme filer med asp-endelsen, selvom de ikke indeholder kode, hvis man regner med at tilføje scripts på et senere tidspunkt.
Flere informationer
Denne artikel har kun præsenteret en meget lille del af mulighederne i ASP under IIS 5.0. Uddybende informationer findes i den elektroniske hjælpedokumentation, der følger med Windows 2000 Server, og på nedenstående Internet-adresser:
msdn.microsoft.com /library/psdk/iisref/iiwachng.htm
msdn.microsoft.com /library/psdk/iisref/iiwanew.htm
msdn.microsoft.com /workshop/server/asp/server02282000.asp