Avatar billede rudedog Nybegynder
26. juli 2000 - 13:12 Der er 21 kommentarer og
1 løsning

Statiske sider er hurtigere at loade?

Hvis man nu har sine websider lagret i en database, har man så normalt en eller flere .ASP filer som henter indholdet fra databasen og generes hver gang man loader siden?

Det ville jo være hurtigere hvis man brugte en statisk HTML side, det den ikke først skal \"behandles\" på serveren. Den kunne så blive genereret fra nogle administrationssider når man havde ændret indholdet. Således ville serveren kan skulle genere dem én gang istedet for hver gang en bruger gik ind på siden.

Er det en god ide???
Avatar billede runesoft Nybegynder
26. juli 2000 - 13:19 #1
Så ville du jo miste alle fordelene ved at have dynamiske sider, hvor indholdet kan skiftes.
Avatar billede limemedia Nybegynder
26. juli 2000 - 13:19 #2
Har du mulighed for at genere en statisk kopi af dine websider er det ALTID en optimal mulighed.

Om du bruger én eller flere ASP (eller andet serverside programmering) kommer helt an på hvor tung din side bliver.
Avatar billede limemedia Nybegynder
26. juli 2000 - 13:23 #3
runesoft >> Ikke nødvendigvis... Det kommer an på, hvor ofte dette dynamiske indhold opdateres. Det er fx. optimalt for en Internet Butik med mange hits at have siderne statiske (for ikke at overbelaste server og database) og så generere nye data ved opdatering af priser m.v.

Ofte er de dele af en website hvor det er muligt statisk, mens andre sider er dynamiske. Det gælder om at opdatere så de tunge processer får så meget performance som muligt.
26. juli 2000 - 13:24 #4


Avatar billede runesoft Nybegynder
26. juli 2000 - 13:33 #5
Jeg tager mine ord i mig igen. Jeg forstod det bare som at rudedog ville have statisk html i databasen.
Avatar billede razor Nybegynder
26. juli 2000 - 13:34 #6
på unix (jeg ved godt at det ikke er i denne kategori) kan man sætte en proxy op foran webserveren der cacher siderne med en expire på et eller andet antal sekunder. Mon ikke også det var muligt at gøre det på Windows ?
Avatar billede ricardo Nybegynder
26. juli 2000 - 13:37 #7
Det kan være en god ide: statisk sider er hurtigere, og kan være et fornuftigt valg hvis din server skal spare på resourcene.

Der findes et komponent (jeg tror det er gratis fra MS) der hedder ASP2HTML: den kan bruges til at dumpe en ASP fils indhold til en HTML fil. Derved kan du beholde din dynamiske ASP fil og kun køre en update til HTML når indholdet ændrer sig. Derved får du alle fordelene: online content management og lette statiske sider.

Der findes vist andre komponenter derude der kan det samme, men jeg tror de er buyware.

Personligt har jeg valgt en hel anden (script-baseret) løsning som jeg selv har lavet - men jeg giver ikke alle mine hemmeligheder væk :)

Tip: det kræver lidt kendskab til Javascript, IE\'s DHTML DOM, og FileSystemObject.
Avatar billede lthrane Nybegynder
26. juli 2000 - 13:40 #8
Som andre har skrevet - man skal vurdere hvor dynamisk ens applikation er. Det vil altid være hurtigere at sende statiske sider til klienterne.

Jeg kiggede på et tidspunkt efter ny bolig, og fandt hurtigt ud af at der var VÆSENTLIG hastighedsforskel på de sites der anvender .htm og dem der anvender .asp.

Et alternativ til at administrationssiderne genererer de statiske sider kunne være at oprette triggere i din database. Så kan du få dem til at generere en ny statisk side hvergang der foretages ændringer.

lthrane
Avatar billede rudedog Nybegynder
26. juli 2000 - 13:44 #9
>> Ricardo

Skal det forstås sådan at det er ret svært at lave sådan en løsning uden brug af komponenter?

Jeg troede man bare kunne få et ASP script til at skrive HTML filerne - jeg synes nemlig jeg læste noget på netcoders.dk om at skrive tekstfiler forholdsvis enkelt.
Avatar billede rudedog Nybegynder
26. juli 2000 - 13:50 #10
Appropros http://netcoders.dk

Jeg har lagt mærke til at der er en seperat .ASP fil for hver side. Hvorfor kunne de ikke bare havde én side der via de rigtige forespørgsler viser det ønskede indhold.
Avatar billede ricardo Nybegynder
26. juli 2000 - 13:51 #11
>> kan man sætte en proxy op foran webserveren der cacher siderne med en expire på et eller andet antal sekunder.

Man kan bruge response.expires metoden til at cache dataene på serveren.
Avatar billede rudedog Nybegynder
26. juli 2000 - 13:53 #12
...så ville det være nemmere at tilføje nye sider istedet for kun at kunne opdatere de eksisterende.

Okay, undskyld, jeg abstraherer måske lidt fra det oprindelige spørgsmål !!!
Avatar billede ricardo Nybegynder
26. juli 2000 - 13:59 #13
>> Jeg har lagt mærke til at der er en seperat .ASP fil for hver side

Det kunne være de er nogle tumper. Det lyder lidt mærkeligt.

>> Skal det forstås sådan at det er ret svært at lave sådan en løsning uden brug af komponenter?

Det kan det være: det har taget mig en del tid at finde ud af en gangbare model.

>> kunne være at oprette triggere i din database.

Bruge ADO og FileSystemObject til at gøre det.

Den simple model: sætte nogle mærkelige tegn der, hvoir du vil have dit indhold, i en HTML fil der er en skabelon. Efter du har smidt din data til DB\'en, åbn filen vha. FSO\'s readall metode og brug replace metoden til at skifte de mærkelige tegn ud med det indhold du skal bruge. Gem derefter filen med det navn du vil have.

Hvis du har styr på at håndtere strenge i VBScript, burde du kunne finde ud af det.
Avatar billede limemedia Nybegynder
26. juli 2000 - 14:02 #14
rudedog >> der findes meget simple løsninger at gøre det på - specielt hvis du kender bare en anelse til SGML og XML, evt lidt Perl
Avatar billede rudedog Nybegynder
26. juli 2000 - 14:04 #15
Kan gøres med noget CGI altså?
Avatar billede limemedia Nybegynder
26. juli 2000 - 14:05 #16
Ja, og ASP, PHP, Java, C# osv
Avatar billede rudedog Nybegynder
26. juli 2000 - 14:20 #17
ricardo:

JEg tror jeg holder mig til ASP. Hvis jeg så skal bruge den metode du nævnte så bliver du noget med at skrive til filen sådan her ikk\':

set objFSO = Server.CreateObject(\"Scripting.FileSystemObject\")

set objTS = objFSO.OpenTextFile(\"side.htm\",ForWriting, True)

objTS.writeline IndholdFraDatabasen

objTS.close()
Avatar billede rudedog Nybegynder
26. juli 2000 - 14:24 #18
...Hvis vi lige ser bort fra at det vil overskrive hele HTML filen hvilket selvfølgelig ikke var meningen.

Hvad med:

objTS.writeline HTMLskabenlonTop + IndholdFraDatabase + HTMLskabelonBund

(Håber det er rigtigt - det er rimelig nyt for mig)
Avatar billede rudedog Nybegynder
26. juli 2000 - 14:50 #19
Hmm. Jeg er selv ved at blive lidt opmærksom på nogle af mine mulige fejl, men er der ikke nogen der lige gider at give deres mening til kende!
Avatar billede ricardo Nybegynder
26. juli 2000 - 14:58 #20
>> set objTS = objFSO.OpenTextFile(\"side.htm\",ForWriting, True)

det er rigtigt:

strMyText = objTS.readall

whatever = \"streng du vil sætte ind\"

strMytext = replace(strMytext, \"¤$¤$\", whatever)

\'kan gentages

Set fw = objFSO.CreateTextFile(\"c:\\text\\mytext.text)
fw.write strMytext
fw.Close
Set fw = Nothing

Noget i den stil...
Avatar billede flemming Nybegynder
26. juli 2000 - 22:20 #21
Hej

Du skal vist have rigtig meget traffik hvis du skal lave statiske sider udfra de dynamisk - betinget af af du har fulgt nogen af MS retningsliner for \"optimal\" ASP programmering.

Jeg har lavet nogle målinger på en \"rimelig\" database tung applikation - og den typiske tid en asp side bruger ligger mellem 5-50 mS (PII@400MHz)

Jeg syntes ikke det er besværet værd - idet \"rigtige\" dynamiske websites ikke kan emuleres med statiske sider (lav lige Alta-vista som statiske sider ;=) En bedre investering er at anskaffe mere hardware som under alle omstændigheder er billigere end en professionel programmør.

Hvis dine sider har statisk præg og du ønsker at have muligheden for at gemme dem som \"non-inteligente\" sider, kan du gøre følgende:

1) opsaml alt HTML output din ASP side laver i en variabel : strOUTOUT

2) i bunden af din side kan du så vælge om du vil skrive den ud til brugeren: <%=strOUTUT%> eller til en fil: objTS.writeline strOUTPUT, evt begge dele.

Men som du sikkert kan forstå af ovenstående er jeg mere af den holdning at når man har sagt A så må man også B... øh ;=)

Avatar billede stringbuffer Nybegynder
06. marts 2003 - 17:56 #22
Enig med ricardo, ville bare pointere at en nem måde at gøre det på er at bruge en template engine. Se evt. www.zhat.dk/template/ hvis du har mod på at prøve min.
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