Paras tapa toiston hallintaan?

Mikäs olisi paras tapa hallita turhaa toistoa nettisivuilla koodin kannalta? Eli jos sivuilla olisi esimerkiksi jokin navigointiosa niin mikä olisi paras tapa tuoda tämä navigointi kaikille sivuille ilman että samaa koodia kirjoittaisi joka paikkaan? Sivut on tehty xhtml 1.1 muotoon...
4347
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

"Eli jos sivuilla olisi esimerkiksi jokin navigointiosa niin mikä olisi paras tapa tuoda tämä navigointi kaikille sivuille ilman että samaa koodia kirjoittaisi joka paikkaan?"

Tämä riippuu palvelinympäristöstä ja siitä, millaisista sivuista on kyse. Olisit voinut antaa linkin, jos sivut ovat jo olemassa.

Palvelimesta riippuen kyseeseen voisi tulla esim. PHP, SSI tai ASP. Pienillä kävijämäärillä ei ole merkitystä (palvelimen kuorman kannalta), millä tavalla nagigointikoodi includetetaan itse sivujen koodiin. Kun aletaan puhua tuhansista päivittäisistä kävijöistä, kannattaa asiaa miettiä tarkemmin. Tällöin staattiset sivut kannattaa ehdottomasti generoida etukäteen eikä ajaa nitä joka kerta PHP-tulkin läpi. Cacheilla ja proxyilläkin on taipumus toimia paremmin täysin staattisten sivujen kanssa.

Jos palvelin ei tue "mitään ylimääräistä", tai jos halutaan säästää sen CPU-aikaa, voidaan navigointikoodin liittäminen tehdä omalla koneella vaikkapa PHP:n avulla. Hommaa varten kannattanee tehdä pieni makefile tai shelliskripti.

Äänestä
  • SSI ja ASP ovat pois laskuista.

    Eli navigoinnista oma esim navigointi.php ja se includataan halutuille sivuille?

    Tarkentaisitko vähän noiden makefile:n ja shelliskriptin "funktionalismia".

    Äänestä

  • epäkäs kirjoitti:

    SSI ja ASP ovat pois laskuista.

    Eli navigoinnista oma esim navigointi.php ja se includataan halutuille sivuille?

    Tarkentaisitko vähän noiden makefile:n ja shelliskriptin "funktionalismia".

    "Eli navigoinnista oma esim navigointi.php ja se includataan halutuille sivuille?"

    Juu, tai eihän sen 'navigointiosan' tarvitse olla PHP-koodia (toki se *saa* olla), vaan sen 'sivun' missä se include-komento ajetaan.

    "Tarkentaisitko vähän noiden makefile:n ja shelliskriptin 'funktionalismia'."

    Elikkäs, mikäli ei haluta/voida käyttää PHP:tä tai vastaavia palvelinpäässä, voidaan sivut generoida vastaavasta koodista jo ennen niiden uploadaamista palvelimelle.

    Oletetaan, että on tiedostot sivu1, sivu2 ja sivu3, joiden kaikkien alkuun pitäisi saada jokin tietty navigointikoodi tiedostosta navi siten, että lopputuloksena olisi sivu1.html, sivu2.html ja sivu3.html. Jos navi:a muutetaan, pitäisi siis kaikkien sivu?.html-tiedostojen sisältöjen myös muuttua.

    Yksinkertaisimmin tämän voi tehdä Windows-ympäristössä komennolla

    for %i in (sivu?.html) do copy navi.oma + %i %i.html

    Tuo tietenkin generoi aina kaikki tiedostot uudelleen, mikä voi olla hidasta, jos niitä on ~tuhat. Tämän ongelman voi ratkaista makefilella (esim. GNU Make). Viisaamman include-toiminnon ja paljon muuta saa imuroimalla PHP:n omalle koneelle ja käytämällä sitä normaaliin tapaan.

    Tiedostojen (mielellään vain muuttuneiden) lähettäminen palvelimelle kannattaa myös automatisoida jollakin skriptillä.

    Äänestä

  • Strawman kirjoitti:

    "Eli navigoinnista oma esim navigointi.php ja se includataan halutuille sivuille?"

    Juu, tai eihän sen 'navigointiosan' tarvitse olla PHP-koodia (toki se *saa* olla), vaan sen 'sivun' missä se include-komento ajetaan.

    "Tarkentaisitko vähän noiden makefile:n ja shelliskriptin 'funktionalismia'."

    Elikkäs, mikäli ei haluta/voida käyttää PHP:tä tai vastaavia palvelinpäässä, voidaan sivut generoida vastaavasta koodista jo ennen niiden uploadaamista palvelimelle.

    Oletetaan, että on tiedostot sivu1, sivu2 ja sivu3, joiden kaikkien alkuun pitäisi saada jokin tietty navigointikoodi tiedostosta navi siten, että lopputuloksena olisi sivu1.html, sivu2.html ja sivu3.html. Jos navi:a muutetaan, pitäisi siis kaikkien sivu?.html-tiedostojen sisältöjen myös muuttua.

    Yksinkertaisimmin tämän voi tehdä Windows-ympäristössä komennolla

    for %i in (sivu?.html) do copy navi.oma + %i %i.html

    Tuo tietenkin generoi aina kaikki tiedostot uudelleen, mikä voi olla hidasta, jos niitä on ~tuhat. Tämän ongelman voi ratkaista makefilella (esim. GNU Make). Viisaamman include-toiminnon ja paljon muuta saa imuroimalla PHP:n omalle koneelle ja käytämällä sitä normaaliin tapaan.

    Tiedostojen (mielellään vain muuttuneiden) lähettäminen palvelimelle kannattaa myös automatisoida jollakin skriptillä.

    Jeps. Paljon kiitoksia.

    Äänestä

Kommentoi aloitusta


epäkäs kirjoitti:

Mikäs olisi paras tapa hallita turhaa toistoa nettisivuilla koodin kannalta? Eli jos sivuilla olisi esimerkiksi jokin navigointiosa niin mikä olisi paras tapa tuoda tämä navigointi kaikille sivuille ilman että samaa koodia kirjoittaisi joka paikkaan? Sivut on tehty xhtml 1.1 muotoon...

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu