Gå til innhold

Problemer med CSS + PHP i Opera [LØST]


Anbefalte innlegg

Istede for å ha to stilark hvor kun noen linjer er forskjellig, så lagde jeg et hvor php printer ut riktig css avhengig av brukerens valg, som er lagret i en cookie.

 

Dette funket bra i både IE og FF, men i opera så må jeg oppdatere siden for at den skal kunne lese css fila på nytt !?

 

Er det slik at både IE og FF ber om css filen hver gang man "blar" inne på en side, mens opera lagrer den ?

 

EDIT: glemte å spørre, er det noen som har forslag til løsning på problemet, eventuelt andre metoder for å få til lignende effekt?

Endret av jokkakim
Lenke til kommentar
Videoannonse
Annonse

Opera har en tendens til å være litt overivrig med å bruke ting som ligger i cachen, fremfor å sjekke om det er kommet noe nytt. Det du kan gjøre er å bruke style-elementet direkte i HTMLen fremfor å bruke en egen CSS-fil. Hvis det bare er noen linjer burde ikke det være noen ulempe.

 

Eks:

<head>
...
<style type="text/css">
/* PHP-generert CSS her */
</style>
...
</head>

Endret av Loomy
Lenke til kommentar

å jeg som trodde opera var perfekt ^^

 

men for å få det litt ryddigere så la jeg den dynamiske css'n i en egen fil med "Cache-Control: no-cache" i headeren. så det funker.

 

men da gikk jo planen om å bare ha en css fil i dass :p

Lenke til kommentar

Vel, etter å ha lest litt, så viser det seg at opera fortsatt er perfekt :p

 

Siden jeg ikke hadde "Cache-control: no-cache" i headeren, så er det jo ikke no feil i å lese fra cachen. Men derimot både IE og FF ber om filen på nytt når det ikke er satt noen Cache-control.

 

Men nå har jeg satt "cache-control: max-age=0" i headeren, pluss ETag, så nå sjekker alle (IE, FF & Opera) om den versjonen de har i cache, er den samme som det serveren ville ha gitt-ut/generert. Er den det så får den en 304, hvis ikke en 200 http status kode(+ all koden).

 

Så da er det LØST ;D

men bestemte meg for å ha 2 stylesheets uanset, en for statisk css og en for dynamisk ;)

 

EDIT: Bytta til "cache-control: max-age=0" siden no-cache, ikke funka i IE likevel

Endret av jokkakim
Lenke til kommentar

Veeeel, man kan aldri stole på headerne (eller mangel på sådan). Hvis den ikke fikk en spesiell Cache-control-header burde den sjekket last-modified-headeren, eller eventuelt tatt en kjapp sammenligning for å sjekke at den ikke er endret siden sist. Hvor mange setter egentlig en spesiell cache-control på stylesheetene sine? Nesten ingen, tør jeg påstå.

 

Menmen, er det løst så er det løst :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...