Brug af Case, i ASP

Tags:    asp
Skrevet af Bruger #5154 @ 05.02.2004

Sådan arbejder du med mange tilstande


Hvis du har overvejet hvordan man f.eks. laver "mange sider i én", som man tit ser, det kan se sådan ud i din adressebar:

Fold kodeboks ind/udKode 


Begge er reelt bare en række querystrings, som betegner hvilken information man vil have vist på siden.

Der kan være flere praktiske grunde til at bruge cases, i stedet for forskellige unikke sider:

* Det er lettere at danne et overblik over sidens samlede funktionalitet
* Du kan skjule din interne filstruktur (mere om det senere)
* Som eksemplet ovenfor viser kan man f.eks. have flere substrukturer på samme fysiske side.


lidt forhåndsviden


Før vi kan bruge cases er det nok rart at vide hvad de afløser rent programmeringsmæssigt:

Man kan sammenligne cases med en bunke if-elseif-end if sætninger:

Fold kodeboks ind/udKode 


Som du nok kan forestille dig, så vil ovenstående bliver ret kedeligt at holde styr på i længden, det er i hvertfald ikke specielt kønt at se på :)

Cases, benytter samme princip, men man har bestemt at en case allerede ved at den vil sammenligne de to stringe, for at lave et eksempel, så laver vi det samme som før, bare med cases:

Fold kodeboks ind/udKode 


Måske kan du forestille dig at det her er praktisk, der er i hvertfald ikke så meget kode at holde styr på.


tip:
En ting man skal ligge mærke til er at til forskel fra f.eks. Java, så kan du bruge tekststrenge som case, hvis du bruger en switch i Java så kan du kun bruge tal, men ellers er dette generelt for de fleste sprog.


tip:
Ovenstående eksempel, er ren asp, men naturligvis kan du starte og lukke dine asp tags, som med andet kode, her er endnu et eksempel, hvor der er inkluderet nogle includes af forskellig art:

Fold kodeboks ind/udKode 


Bemærk dog at selvom du laver cases, så vil include filerne altid blive indsat før serveren kører asp scriptet, derfor vil du ikke få nogen ydelsesforbedring af ovenstående, men det er da mere læseligt :)

En sidste ting du skal være opmærksom på er at, selvom du godt kan have to cases der benytter samme querystring (f.eks. hvis du vil have en unik menu, og indholdsdel på siden) så skal den altid lukkes og åbnes korrekt, du kan ikke lade en case stå "åben" ved at glemme at afslutte den med "end select" så får du fejl.





Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (8)

User
Bruger #123 @ 09.02.04 09:39
Udemærket artikel. Den er dog noget kort i det.
User
Bruger #5154 @ 09.02.04 22:18
Hej Thomas, det er jo ikke det mest avancerede emne i verden, men hvis du har forslag til tilføjelser så er du da mere end velkommen til at skrive dem her :)
User
Bruger #3530 @ 15.02.04 15:08
Glimrende og dog simpel.....kan man mon bruge samme funktion i php ??
3 tal herfra...og plejer ellers kun at give 2 :)
User
Bruger #5062 @ 21.02.04 17:43
Det er en god artikel, selv om den er så kort. Det er godt, for lange artikler bliver kedelige i længden, men det var langt fra tilfældet her :)
User
Bruger #3788 @ 22.02.04 11:21
Måske kunne det være fedt hvis du også beskæftigede dig med dynamisk inklusion, dvs. at querystringen peger på et filnavn (uden endelse) og scriptet så automatisk inkluderer den. Det er ihvertfald noget jeg bruger en hel del, når jeg koder PHP. Men et tretal alligevel :)
User
Bruger #5154 @ 26.02.04 10:45
David, nu er artiklen om cases, og ikke dynamisk includes, jeg har vist set en artikel om includes et andet sted her på sitet, jeg mente at det var lidt ud over det scope, jeg havde sat for en nybegynder artikel at beskæftige sig med dynamisk includes... men det er da stof til en ny artikel :)
User
Bruger #4684 @ 29.04.04 13:08
Der er en fejl... Else Case lukker <% %> tagget, og du åbner ikke et nyt til Response.Write
User
Bruger #5800 @ 31.01.05 02:27
Kunne laves meget mere dynamisk, men mulighederne for dynamisk kode er dog bedre i PHP end ASP, når vi snakker include valg. via query-string.
Du skal være logget ind for at skrive en kommentar.
t