Jag håller på och konstruerar en site och börjar inse att jag behöver strukturera upp koden och bryta ned den i mindre hanterbara moduler.
Som jag har lagt upp det nu har jag fem huvudmenyer som utgörs av fem stycken asp-sidor. Under varje huvudmeny (asp-sida) finns det X antal undermenyer som jag anropar genom en querystring (ex. https://www.doman.se/default.asp?action=nyheter). Som jag sa tidigare. Det börjar bli mycket kod i var och en av dessa filer.
Jag har funderat på att ta ur all kod ur dessa fem asp-sidor och lägga dem i egna bibliotek och endast ha en response.redirect med en hänvisning till rätt asp-fil i de nuvarande filerna. Är det rätt väg att gå? Eller finns det något annat sätt att göra det på? Vill inte göra något jobb i onödan innan jag fått lite inputs! :)
Dim sAction
sAction = Request.QueryString("action")
Dim objConn, sql, rsp
'adodb fixande...
sql = "SELECT * FROM tblPage WHERE PageCN = '" & Replace(sAction, "'", "''") & "'"
rsp.Open sql, objConn, ...
Set objConn = Nothing
If Not rsp.EOF Then
Server.Execute rsp("PageCN")
Else
Response.Write "Sidan finns inte..."
End If
Set rsp = Nothing
Här kan man sen också blanda in ett ParentId för att skilja på undermenyer och huvudmenyer. Och lämpligt är också att utgå från den tabellen när man ska rita ut menyn.
Skrev det här inlägget för ett bra tag sen och hittade det när jag gjorde en sökning. Undrar vad den stora vinningen är att anropa sidor i ASP på det sätt som Erik Juhlin presenterade? :) Är det enbart att man slippar alla if-satser eller finns det något mer strukturellt som man kan vinna på det och i så fall vad?
Definitivt mer struktur. Då styr databasen vad som finns.
Ska du lägga till något så behöver du inte rota i if-satser på en massa sidor, utan behöver bara gå in i databasen och lägga in en post.
Jag har sett en del använda det tidigare men inte riktigt förstått poängen med det. Nu börjar det dock gå upp ett ljus. Som det har varit fram till nu har det varit en oändlig harang med if-satser i min kod för de olika sidorna/avsnitten. Det är lätt att något blir fel. Ska pröva pageID-konceptet :)
Är det något mer viktigt/fundamentalt man bör tänka på innan man implementerar en sådan här pageID-struktur?
Låter väldigt smakfullt! Hur har du koden uppdelat? Skapar du en ny asp-fil för olika funktioner/händelser/modifieringar av data som sker i databaserna eller har du en särskild fil med "alla" funktioner i en och samma fil? Lite intresserad av att höra vad ni andra har för upplägg på era projekt. Förut hade jag strukturerat det så att exempelvis allt som hade med medlemmar (member.asp) att göra fanns i den filen, oavsett om det var funktioner som utförde en specifik sak (ta bort medlem ex.) eller om det var själva den koden som presenterade de olika delsidorna inom memberfunktionen. Sedan fick jag skicka med en querystring och läsa av det och matcha det i en IF-sats eller CASE-sats för just den filen.
Jag/vi kör ju med VB-komponenter. Med det får man ännu mer struktur.
Och sen så tycker jag det är lämpligt att lägga ganska mycket i samma fil så länge det har med det att göra.
Säg att man ska göra en nyhetsgrej där man kan lägga upp nyheter. Då har vi ofta en list.asp fil där man listar alla nyheter. Sen har man en edit.asp fil som sköter all redigering. Som skapa ny nyhet, redigera nyhet, ta bort nyhet och liknande.
Kan bli ganska mycket kod om man har det så, men eftersom att vi kör med com-objekt så sköts mycket av dem.
Vill man ha något som liknar komponenter så kan man ju ha include filer som har funktioner för att göra saker. T.ex. en newsutil.asp med funktioner som GetNews, SaveNews, DeleteNews o.s.v.
133 ms totalt · 3 externa anrop · v20260731065814-full.b746b907