Har en liten fråga, på min sida har jag mina länkar såhär "index.asp?main=omoss" och i filen ligger sedan infon som visas i koden nedan, jag har såhär pga att det är inte är så jätte mycke info som behöver skrivas ut, en liten tabell med text för varje länk typ, men tänkte på om i framtiden man skulle ha en större sida, nu till frågan, finns där något enklare och effektivare sätt att göra samma sak och kanske minst krävande för servern/klienten att genomföra?
Eller t.om översätta detta till asp.net skulle vara fin fint då jag tänkte börja med det istället så småningom.
<%If Request.Querystring("main") = "" Then %>
//Händer nåt skoj
<%Else If Request.Querystring("main") = "omoss" Then%>
//Händer nåt skoj
<%Else If Request.Querystring("main") = "kontakt" Then%>
//Händer nåt skoj
<%Else If Request.Querystring("main") = "priser" Then%>
//Händer nåt skoj
<%Else If Request.Querystring("main") = "kopvillkor" Then%>
//Händer nåt skoj
<%End If
End If
End If
End If
End If%>
Några snabba alternativ byt ut din ifsats mot en select case
<%
select case Request.Querystring("main")
case "omoss"
'kod för om oss
case "kontakt"
'kod för kontakt
case else
'om inget av alternativen
end select
Använd Server.execute
Server.Execute("omoss.asp")
omoss.asp
en asp-fil med enbart det innehåll som skall finnas, dvs inga html,head eller bodytaggar
<%
response.write("lite aspkod")
%>
Vänd på allt och inkludera överdelen + underdelen av sidan på alla undersidor
omoss.asp
<!--#include file="Top.asp"-->
en asp-fil med enbart det innehåll som skall finnas, dvs inga html,head eller bodytaggar
<%
response.write("lite aspkod")
%>
<!--#include file="botten.asp"-->
slutliga tipset: Gå över till asp.NET och använd masterpage
Select verkar va något isåfall men jobbar select bättre än if satser eller det är ingen större skillnad (Ifall man kör en större sida)?
det andra alternativet känns som det kommer dra mer på servern i slutändan, och det tredje är inte aktuellt då jag även har grejer på sidorna vilket bara skulle va krångligt att ladda, och känns ungefär som att den då får ladda om hela sidan, det skulle vara samma princip som att man skulle köra ren html och göra en kopia av sidan för varje länk och bara länka till filen.
aja la in select på sidan nu och det fungerar fin fint, så alltså då kan man alltså skippa if satsen i fortsättningen och bara köra på select då eller måste man använda if satsen om man har mer än ett invärde? och vad menar du med invärde?
..det skulle vara samma princip som att man skulle köra ren html och göra en kopia av sidan för varje länk och bara länka till filen.
Ehm nej
vad gör du när du skapar en ny fil för att använda tillsammans med server.execute? Jo du SKAPAR en ny fil
när du använder includes för att inkludera sidhuvud + sidfot vad gör du då? Jo du skapar en ny fil och skriver/kopierar dit 2 rader kod
du behöver inte i något av fallen bry dig om att redigera de 2 filer som innehåller din layout (eller 3 eftersom jag antar att du har en extern CSS ^^)
Ja men det va ju det jag mena att dom skapar en ny fil så det skulle bli samma princip som att skapa en ny fil för varje länk ungefär därför lät select som ett bättre alternativ.
Förresten kan select krångla? för sen jag la in det och när jag ibland updaterar sidan så skriver den ut sidan 2 gånger.
ja det är samma mängd arbete att ha server.execute + select case som att ha separata filer med header/footer inkluderat. I förstnämda fallet skapar du en ny "content-fil" , lägger in e nytt "case villkor" samt uppdaterar menyn. I det andra fallet så behöver du bara skapa en ny fil där du inkluderar header/footer samt ändra i menyn
Att select case gör så att sidan skrivs ut 2 ggr ser jag som osanolikt
efter som det som sker är att hela sidan körs på servern, select-case kollar vilket innehåll som skall visas och sen kommer det ut en htmlsida.
enda chansen att du skall få sidan 2 ggr är att du lyckats inkludera en kopia av index så att undersidan även innehåller en uppsättning av allt , sånt brukar iofs märkas.
för att vara 100% på att inte servern roar sig med att bara lägga till saker i en redan cachad fil så kan du ju lägga en response.flush överst