webForumDet fria alternativet

Struktur avseende intern länkning

ASPur ASP

8 svar · 441 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#1

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! :)

Medlem sedan apr. 20003 174 inlägg
#2

Server.Execute kanske skulle vara nått för dig att använda.. :)

Medlem sedan maj 200010 687 inlägg
#3

Lämpligt är också att slänga in sidorna i en tabell. Så man inte behöver if:a och hålla på. Ett exempel på det...
Först databasen:

tblPage

Kolumnnamn		Beskrivning		Exempelvärde
PageId			ID...			123
PageName		Namn...			Nyheter
PageCN			CommonName/CodeName	nyheter
PageFile		Filen			news.asp
PageCreationDate	När den skapades	2004-05-24 09:52

Sen kod:

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.

Medlem sedan apr. 20041 597 inlägg
#4

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?

Mvh,
Fredrik

Medlem sedan maj 200010 687 inlägg
#5

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.

Medlem sedan apr. 20041 597 inlägg
#6

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?

Medlem sedan maj 200010 687 inlägg
#7

Nej. Du kan ju passa på att lägga in andra saker varje sida ska ha i den tabellen. Inställningar och grejer.

Medlem sedan apr. 20041 597 inlägg
#8

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.

Medlem sedan maj 200010 687 inlägg
#9

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
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)