Välkommen till wF!!
Det går att göra på flertalet sätt, antingen så har du olika include filer för olika länkar.....eller så hamtar du olika information från någon annan datakälla (databas, xml),beroende på vilken länk som aktiverats.
Men det hela bygger väl på att man har en mall (designen) där man visar olika information beroende vilken länk som aktiverats
Välkommen till wF!
Du kan ju använda Querystrings tillsammans med Select Case och Server.Execute("sida.asp").
Lite kod (default.asp):
<a href="default.asp?kat=bilder">Bilder</a>
<br /><a href="default.asp?kat=info">Info</a>
<br />etc..
<%
Dim sida
sida = Request.Querystring("kat")
Select Case Sida
Case ""
Response.Redirect "default.asp?cat=default" 'startsidan
Case "bilder"
Server.Execute("bilder.asp")
Case "info"
Server.Execute("info.asp")
Case Else
Response.Write "Denna kategori finns inte.."
End Select
If Request.Querystring("kat")="default" Then
'saker som ska stå på startsidan
End If
%>
Ungefär så, hyfsat enkel kod och hoppas att du förstår.
<a href="default.asp?sida=bilder">Bilder</a>
<br /><a href="default.asp?sida=info">Info</a>
<br />etc..
<%
Dim sida
sida = Request.Querystring("sida")
Select Case Sida
Case "bilder"
Call bilder()
Case "info"
Call info()
Case Else
Call default()
End Select
sub bilder()
response.write "Min lilla bildavdelning...."
End Sub
sub info()
response.write "Min lilla infoavdelning...."
End Sub
sub default()
response.write "Min lilla defaultavdelning...."
End Sub
%>
Är det många sidor det handlar om så är en select case mycket bättre enligt min smak istället för att trixa med en massa elseif, det ser dessutom snyggare ut och blir lite mer överskådligt.
Vad gäller om det är bra eller dåligt med en ända stor sida är nog en smaksak. Själv brukar jag göra som m_soderlund, alltså exekvera olika sidor med server.execute, det skapar lite mera ordning i mina tankar.
En megasida är svår att administrera, men annars så har den väl inte så mycket nackdelar.
Om man kodar smart så finns ingen speciell nackdel med att användaren bara "kör" default-sidan.
Att använda select case framför en massa if-satser är nog inte bara snyggare, utan mycket möjligt lite snabbare. *Dock utan källa och test för detta*
När man kör en liknande kod:
select case request.querystring("site")
case "kontakta"
server.execute("kontakta.asp")
case else
server.execute("start.asp")
end select
Fördelen är att du inte behöver lägga in någon designkod i de andra filerna. Du skriver bara texten som skall synas, och placerar denna i designen som du skapat en gång i default-filen.
ska genast byta ut mina ifsatser till select case... men är det bäst att att köra server.execute eller köra massa subbar? är det helt en smaksak eller går något fortare än det andra?
Jag sitter o rensar lit bland mina gamla sidor, skript mm. Hittade en grej jag gjort som består av 30 aspfiler på totalt 109kb.
Där blev det ett fasligt ändrande i en massa filer hit och dit när jag skulle ändra lite sökvägar.
Slutsats: Tänka smart, tänk framåt. Lägg saker som ska kunna ändras lätt, sökvägar till bilder mm, i variabler som ändras på ett ställe.
Om det ska separeras i olika filer, separera smart samt se till att namnge filer samt skriv kommentarer så att du vid ett mycket senare tillfälle ändå kommer in i koden och förstår dig på den.
Går det långsammare att dela upp det på flera sidor än att ha subbar?
jag testade med att dela upp det på flera sidor och använde Server.Execute("sida.asp") systemet. MEN det verkar inte som om de includes jag gjort på sidan som executerar de andra sidorna gäller för extra sidan. Dvs de funktioner som är inkluderat på första sidan hittas inte under de andra sidorna. varför inte det? någon som vet?
execute innebär att man skapar ett nytt kontext, dvs man delar ingen kod eller variabler mellan sidorna. Om du vill använda en funktion i den sida du gör execute på så måste du definera funktionen där också. Om du vill dela data mellan sidorna kan du använda session-variabler.
execute innebär att man skapar ett nytt kontext, dvs man delar ingen kod eller variabler mellan sidorna. Om du vill använda en funktion i den sida du gör execute på så måste du definera funktionen där också. Om du vill dela data mellan sidorna kan du använda session-variabler.
That's life.
detta gäller även om man har subbar då? känns som hela vitsen med att dela upp det på flera sidor försvann... samt att använda Select Case istället för IF then satser... eller har jag missat något?
550 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e