manman: styleswitcher - cache-problem

Moin moin,

ich bastel gerade an einem Styleswitcher auf Cookies basierend, das ganze funktioniert soweit auch wunderbar, nur macht mir das Chaching Probleme.

Wenn ich den Style wechsle ich aber zuvor Seite X schon mit dem anderen Style aufgerufen habe, so wird der Style von dieser Seite erst nach ausdrücklichem reload auch umgestellt.

Aber das Caching ganz zu untersagen ist auch nicht meine Absicht - ich meine man untersagt das Caching bei Gästebüchern oder ähnlichem, aber nicht bei "statischen" Seiten; außerdem warum soll man wegen einem kleinen Stylesheet, das sich ändert das Chaching für eine komplette Seite untersagen.

Gibt es eine möglichkeit dieses Problem zu umgehen?

Wäre es eine Möglichkeit bei jedem Seitenaufruf eine JavaScript prüfen zu lassen, ob der eingebundene mit dem im Cookie gewählten Stylesheet übereinstimmt und gegbenermaßen neuladen zu lassen?

Gruß

  1. Hi,

    Wäre es eine Möglichkeit bei jedem Seitenaufruf eine JavaScript prüfen zu lassen, ob der eingebundene mit dem im Cookie gewählten Stylesheet übereinstimmt und gegbenermaßen neuladen zu lassen?

    Ja - aber dann solltest du nur das Stylesheet ersetzen bzw. hinzufuegen und aktiv schalten, statt die ganze Seite neu zu laden.

    MfG ChrisB

    1. Hallo,

      wua das ging aber schnell. DANKE.

      Also ist das tatsählich die einzigste Möglichkeit?

      Grüßle

      1. Hi,

        Also ist das tatsählich die einzigste Möglichkeit?

        Natuerlich nicht.
        Du koenntest genauso gut immer die selbe CSS-Ressource einbinden - und die je nach gewaehltem "Style" serverseitig dynamisch erzeugen, und ihr Caching untersagen.
        Von der Performance her ohne weiteres (eigene Implementierung von Caching) natuerlich auch unguenstig - wechsle ich den Style nie, muesste ich trotzdem immer die CSS-Ressource neu laden, bei jedem Seitenaufruf.
        Da faellt mir noch ein: Man koennte auf ein Script verlinken, welches dann per Location-Header auf statische CSS-Ressourcen weiterleitet. Die koennten dann ihrerseits gecached werden, nur das "weiterleitende" Script muesste dann jedes Mal frisch abgerufen werden.

        MfG ChrisB

        1. Hallo,

          wie könnte das genau aussehen?

          Ich habe praktisch ein "Alibi"- Stylesheet, das mir dann je nachdem den jeweiligen Sytelsheet ausspuckt. Doch wie kann ich genau für diesen dynamischen Sytslesheet das Chaching untersagen?

          <link href="dynamischer_stylesheet.css" media="print" rel="stylesheet" type="text/css" />

          Könnte ich nun in dynamischer_stylesheet.css php-Code stehen haben, der mir jenachdem den richtigen Stylesheet ausspuckt?

          Gruß

          1. Hallo,

            ich habe jetzt mithilfe von htaccess und forcetype erreicht, dass die Datei "no-cache.css" php interpretiert.

            Innerhalb dieser css importiere ich jetzt mit @import den jeweiloigen Stylesheet:
            @import(style_1.css);

            Im Opera auch kein Problem, dcoh der Firefox macht mir das ganze leider nicht. Hat jemand Rat? Muss ich diesen Lösungsansatz wieder über Bord werfen?

            Ansonsten wäre diese Methode prima, ich würde einfach mit htacess des weiteren steuern, dass no-cache.css nicht gecached wird. So würde immer der jeweils aktuelle Stylesheet importiert der wiederum ja gecached werden darf,

            Gruß

            1. Hi,

              ich habe jetzt mithilfe von htaccess und forcetype erreicht, dass die Datei "no-cache.css" php interpretiert.

              Im Opera auch kein Problem, dcoh der Firefox macht mir das ganze leider nicht. Hat jemand Rat?

              Passenden Content-Type Header mitgeben, damit der Browser auch *weiss*, dass er das ganze als CSS interpretieren soll.

              MfG ChrisB