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...
Paras tapa toiston hallintaan?
epäkäs
4347
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
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.
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ä.
Jeps. Paljon kiitoksia.