Avatar billede Swift Praktikant
28. oktober 2003 - 16:43 Der er 14 kommentarer og
1 løsning

Hvordan laves go' gammeldaws INCLUDE

Jeg synes nedenstående er noget hø:
If hest = 31 Then
    %><!--#Include file="hest31.asp"--><%
End If

Findes der ikke en anden gammel include metode...?
Ala:
If hest = 31 Then
    Include "hest31.asp"
End If
Avatar billede squashguy Nybegynder
28. oktober 2003 - 16:46 #1
hvorfor er det noget hø? det er nu engang syntaksen i asp :p

alternativt til include kan bruges server.execute("hest21.asp")

forskellen er at execute() laver nyt namespace, dvs alle variabler/funktioner kan ikke ses fra den inkluderede fil.
Avatar billede ducks Nybegynder
28. oktober 2003 - 16:48 #2
Eller

Select Case hest
  Case 31%>
    <!--#include file="hest31.asp"-->
  <%Case...
End Select
Avatar billede netro Nybegynder
28. oktober 2003 - 17:13 #3
ducks -> Man kan IKKE inkludere filer på den måde dynamisk. Der skal bruges Server.Execute() til filer eller bare Execute() til tabelfelter.
Avatar billede Swift Praktikant
28. oktober 2003 - 17:45 #4
Jeg synes bare det er MEGA grimt at man skal slukke og tænde for ASP kode blokken, for at inkludere en fil....hul i hovedet!

I eksempelvis PHP er det jo bare: include( "headers.php" );

Nå, det er nok sådan det skal være....

Så et andet lille følgespørgsmål:
Hvis man nu har en stor If Else struktur - og 10 forskellige includes.
Inkluderes filerne så FØR eller EFTER at If strukturen bliver bearbejdet?

Hvis nu nogle af inklude filerne er på mange hundrede KB - så er det jo spild af resourcer hvis filerne inkluderes lige meget hvad.

Men hvordan fungerer det?
Avatar billede netro Nybegynder
28. oktober 2003 - 18:12 #5
Du kan stadig ikke inkludere dynamisk.
Avatar billede squashguy Nybegynder
28. oktober 2003 - 19:49 #6
netro> ducks' forslag vil da virke fint. Selve filnavnet i #include er jo ikke dynamisk, hvilket er betingelsen for at det vil virke.

swift>#include går før -alt- andet. Dvs alle 10 filer vil blive inkluderet. Execute() er så igen forskellig, da denne kun afvikles, når den kaldes.
Avatar billede squashguy Nybegynder
28. oktober 2003 - 19:54 #7
swift>dog vil siden kun være krævende første gang den kaldes; anden gang vil siden blive afviklet -meget- hurtigere, da siden "compiles" og caches. Dette er så fordelen ved #include. Exeucte() bliver ikke compiled.
Avatar billede netro Nybegynder
28. oktober 2003 - 21:10 #8
Som du selv siger er include-filer det første, der behandles. Derfor kan man ikke stille en betingelse for, hvad der skal inkluderes hvornår. I stedet kan man jo så benytte Execute(), som du også selv foreslog.

If hest = 31 Then Server.Execute("hest31.asp")
Avatar billede squashguy Nybegynder
28. oktober 2003 - 21:24 #9
ja.. men det andet virker sådan set også. Alle sider inkluderes, men kun det, som står inde i den if-sætning, som er true, bliver afviklet..
Avatar billede netro Nybegynder
28. oktober 2003 - 21:29 #10
Ja, det er helt korrekt. Jeg troede du påstod, at den pågældende fil kun ville blive inkluderet, hvis betingelsen var sand.
Avatar billede squashguy Nybegynder
29. oktober 2003 - 12:21 #11
nah det har jeg aldrig påstået :p
Avatar billede netro Nybegynder
29. oktober 2003 - 12:30 #12
;o)
Avatar billede a-torsten Nybegynder
29. oktober 2003 - 12:33 #13
squashguy

Er du sikker på at den compiles og caches...? Det er jeg nemlig ikk... Mener bestemt ikk at ASP compiles... Det fortolkes blot... Havde det været ASP.net havde det været en helt anden sag, og så mener jeg at du havde ret....

Correct me if im wrong...

/Anders
Avatar billede squashguy Nybegynder
29. oktober 2003 - 15:01 #14
Avatar billede Swift Praktikant
29. oktober 2003 - 16:53 #15
Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester