Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: 2kpl typeriä kysymyksiä

Sivun loppuun

Juhko [10.01.2010 03:17:57]

#

1. JJP:n foorumilla sivut eivät tallennu välimuistiin, vaan ne ladataan uudestaan aina kun siirryn sivulle edellinen/seuraava -nappuloiden kautta. Miten saan korjattua?
2. Samaisella sivulla näyttää meinaan aika perhanan rumalta, kun sivulla välähtää CSS-tyyliton versio, kun tyylitiedostoa ei ole vielä ladattu. Onko mahdollista korjata?

Edit: Ja vielä kolmas: Miksi iframe ei mene validaattorista läpi?

Merri [10.01.2010 03:30:40]

#

PHP-sivut nyt aina luodaan uudestaan, ettei niiden kuulukaan jäädä välimuistiin. Jos ne välimuistittaa liian tehokkaasti, niin sittenhän muutokset eivät välttämättä käy ilmi. Tässä on kiva sivu .htaccess-välimuistittamiseen.

Sinulta ainakin puuttuu type="text/css" attribuutti link-tageista.

Jos muistan ulkoa oikein, niin IFrame oli aikanaan Microsoftin lisäys, joka taitaa tulla HTML-standardiin vakioelementiksi nyt HTML 5:n myötä.

Juhko [10.01.2010 03:50:43]

#

Kiitoksia.

tsuriga [10.01.2010 11:44:22]

#

Toki dynaamisestikin luotuja sivuja kannattaa kakuttaa tilanteen mukaan, sillä vaikka sivu luodaankin dynaamisesti, ei sisältö välttämättä päivity yhtään sen tiheämpään kuin staattisesti luodulla sivullakaan.

trilog [10.01.2010 15:35:08]

#

http://jjp.jouluserver.com/keskustelu/sections.php (header) kirjoitti:

Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache

Eli sivu kertoo headereillaan selaimelle, ettei sisältöä saa välimuistittaa, vaan se pitää ladata joka kerta uudelleen.

Merri [10.01.2010 20:39:52]

#

Välimuistitus toimii parhaiten vain jos sen tekee PHP:n puolella, eli sen sijaan että kaikki tietokantakutsut tehdään uusiksi niin mahdollisimman moni niistä lykätään esim. tekstitiedostoon. Foorumilla muuttujia on kuitenkin paljon: käyttäjien nimet saattavat vaihtua, käyttäjä saatetaan poistaa, viestejä saatetaan muokata tai poistaa jne. ja kaikki tämä pitää huomioida välimuistittamisessa. Lisäksi sivulla saattaa olla käyttäjäkohtaista muuttuvaa tietoa, mm. listaus sillä hetkellä sisäänkirjautuneistä käyttäjistä tai viesteissä on seuranta siitä, mitkä niistä on luettu ja mitkä ei.

Näillä aatoksin PHP-sivun välimuistittaminen selaimen toimesta on käytännössä lähellä järjetöntä. Sivuhan ladataan usein juuri sen takia, että nähdään onko muutoksia tapahtunut.

Grez [10.01.2010 20:50:31]

#

IMO on vielä järjettömämpää kakuttaa tietokantahaun tuloksia tiedostoihin ja näin heikentää järjestelmän suorituskykyä. Hyvin toimiva tietokanta pitää kuitenkin useimmiten tarvitut tiedot muistissa.

Tietenkin jos järjestelmä on huonosti suunniteltu, eli tietokantakyselyt ovat raskaita, niin silloin voi olla järkevää kakuttaa niitä. Mutta tässäkin tapauksessa lähtisin ennemmin purkamaan sitä huonoa suunnittelua kuin rakentamaan purkkaviritystä ongelman kiertämiseksi.

jo123 [10.01.2010 21:04:46]

#

Kyllä nyt css-tiedosto voi välimuistiin tallentua, vaikka kuinka muuttuva sisältö olisikin... Tietenkin jos css-tiedosto luodaa php:llä ja se saattaa muuttua sivuston eri sivuilla, johon en kyllä näe tarvetta.

Edit: Tosin ei kukaan sitä tainnutkaan kieltää.

Merri [11.01.2010 00:06:41]

#

Totesin CSS-tiedoston luonnin PHP:lla jossain vaiheessa typeräksi, lähinnä saatuani lisää tietoa välimuistituksesta .htaccessin voimin. Nykyisin kun päivitän CSS-tiedostoa, niin annan sille päivämäärän tiedostonimeen ja heitän PHP-templaattiin tiedon uudesta tiedostosta. CSS-tiedostolla on 10 vuoden välimuistitus per versio, joten muutoksien sattuessa on pakko vaihtaa tiedoston nimeä, muuten muutokset eivät näkyisi käyttäjille.

Grez: omassa tapauksessani webhotellin tietokantapalvelin on jatkuvasti sen verran käytössä, että tekstitiedoston lukeminen on paljon nopeampaa. Toisaalta siellä on myös hitaampi kutsu, mutta koska se koskee mainitsemaani viestien merkkautumista luetuksi (eikä se ole omaa koodiani), niin joutuisin kirjoittamaan valtavasti järjestelmää uusiksi saadakseni sen toimimaan nopeammin. Sivutila on kuitenkin tarjottu täysin ilmaiseksi käyttööni, joten en voi nipottaa. Välimuistin lisäys yhdelle sivulle oli riittävä ja nopeahko ratkaisu, sivun luontiaika laski noin 0,7 sekunnista sellaiseen 0,1 sekuntiin.

Lebe80 [11.01.2010 00:10:54]

#

Merri: vaihdatko ihan koko nimeä?

Itsellä on tapana heittää tiedoston nimen perään parametrejä, jotka muodostuvat juuri muokkauspäivämäärän mukaan. esim. style.css?v.20090111-0010 (tai yleensä pelkän timestampin mukaan)

Merri [11.01.2010 00:17:27]

#

Jep, teen kokonaan uuden tiedoston: <link href="/ulkoasu/2009-11-25.css" media="screen,projection" rel="stylesheet" type="text/css" />

Säilyypähän vähän versiohistoriaakin samalla, vaikka siltä varalta että poistan jotain ja sitten myöhemmin huomaan poistaneeni liikaa.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta