26. juli 2000 - 13:12Der 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.
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.
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 ?
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.
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.
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.
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.
>> 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.
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 ;=)
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.
Synes godt om
Ny brugerNybegynder
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.