Daniel1987: Wie CSS-caching verhindern?

Hi und Hallo,

ich habe eben im Internet entdeckt, wie jemand beschreibt, wie man das CSS-caching verhindern kann und eine sehr leichte Lösung entdeckt. Laut dieser Lösung muss man einfach nur einen wechselnden Parameter an die Datei hängen, in etwa so wie hier:

<link rel="stylesheet" href="<? echo $ROOT; ?>includes/css/style.css?nocache=<? echo date("Ymd", $time); ?>" type="text/css" />

oder auch:

<script src="<? echo $ROOT; ?>includes/ajax/ajax.js?nocache=<? echo date("Ymd", $time); ?>" type="text/javascript"></script>

ist das wirklich so einfach? Oder hat wer eine andere Lösung für das Problem?

--
Mit freundlichen Grüßen
Dani
  1. hi,

    ich habe eben im Internet entdeckt, wie jemand beschreibt, wie man das CSS-caching verhindern kann und eine sehr leichte Lösung entdeckt. Laut dieser Lösung muss man einfach nur einen wechselnden Parameter an die Datei hängen

    Unterschiedliche GET-Parameter bedeuten unterschiedliche Ressourcen - und zwischen zwei unterschiedlichen solchen ist dann gar kein "Caching" mehr möglich, da Caching immer nur auf genau einer Ressource (und ggf. noch auf einer speziellen Ausprägung dieser) wirksam ist.

    ist das wirklich so einfach?

    Ja - wenn man denn Caching ganz und gar unterbinden will.
    Dass das natürlich in aller Regel ein eher blödsinniger Ansatz ist, sollte klar sein.

    Oder hat wer eine andere Lösung für das Problem?

    Welches _Problem_ denn eigentlich?
    Du hast überhaupt keins beschrieben.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Ja - wenn man denn Caching ganz und gar unterbinden will.
      Dass das natürlich in aller Regel ein eher blödsinniger Ansatz ist, sollte klar sein.

      Wenn man täglich was ändert, wieso sollte dieser Ansatz dann dumm sein? Und wenn es wirklich dumm ist, wieso reagierst du dann nicht auf meine Frage ob es einen besseren Lösungsansatz gibt?

      Welches _Problem_ denn eigentlich?
      Du hast überhaupt keins beschrieben.

      Ach ne? Ist dir meine Überschrift:

      Wie CSS-caching verhindern?

      Nicht eindeutig genug?

      @wahsaga - think before you do.

      1. Welches _Problem_ denn eigentlich?
        Du hast überhaupt keins beschrieben.

        Ach ne? Ist dir meine Überschrift:

        Wie CSS-caching verhindern?

        Nicht eindeutig genug?

        Du wolltest wissen, ob die Dir bekannte Lösung funzt, wauwau hat das positiv bestätigt.

      2. hi,

        Wenn man täglich was ändert, wieso sollte dieser Ansatz dann dumm sein?

        Wenn eine Ressource, die sich einen ganzen Tag lang nicht ändert, von 5.143 Usern 27 mal am Tag abgerufen wird - dann macht das bei diesem dummen Ansatz 5.143 x 27 = 138.861 Abrufe.
        Wenn jeder Nutzer die Ressource cachen dürfte (und würde), so lange sie gültig ist, wären es 5.134.

        Und wenn es wirklich dumm ist, wieso reagierst du dann nicht auf meine Frage ob es einen besseren Lösungsansatz gibt?

        Weil du die nicht gestellt hast.

        Welches _Problem_ denn eigentlich?
        Du hast überhaupt keins beschrieben.

        Ach ne? Ist dir meine Überschrift:

        Wie CSS-caching verhindern?

        Nicht eindeutig genug?

        Nein, sie zielt immer noch in die falsche Richtung.

        Wenn du Caching wirklich _verhindern_ willst - ja, dann nimm die gezeigten Ansätze, sie sind für diese dümmliche Anforderung gut genug.

        Wenn du es intelligenter machen willst - dann informiere dich über Stichworte wie expires, last-modified, etag, etc.

        @wahsaga - think before you do.

        @kleines beleidigtes !&%$: Lerne Englisch, bevor du es benutzt.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. @wahsaga

          Dank <? echo date("Ymd", $time); ?> würde sie nur einmal pro Tag neu geladen werden und da tägliche updates kommen ist es sehr sinnvoll.

          plz, think before you do ^^

          1. hi,

            Dank <? echo date("Ymd", $time); ?> würde sie nur einmal pro Tag neu geladen werden und da tägliche updates kommen ist es sehr sinnvoll.

            Diese "Updates" kommen also genau um 0:00 Uhr?
            Welchen Grund gibt es dafür?

            Caching so zu implementieren, wie HTTP es vorsieht, dürfte trotzdem idR. günstiger sein.

            plz, think before you do ^^

            Auch wenn du jetzt die Abkürzung für Postleitzahl davorsetzt, weil du das für cooles Kiddie-Englisch hältst, wird die Grammtik dieser Schwachsinns-Aussage dadurch nicht verbessert.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hi und Hallo,

    ist das wirklich so einfach?

    Ich verstehe deine Frage nicht so ganz. Hast du es noch nicht ausprobiert?

    Es geht aber im Übrigen noch ein Fizzelchen einfacher:

    includes/css/style.css?<?php echo time(); ?>

    Oder hat wer eine andere Lösung für das Problem?

    Ich habe tatsächlich noch eine andere Variante benutzt, die dafür sorgt, daß nur dann der Cache umgangen werden soll, wenn sich die Datei auch wirklich verändert hat. Diese Variante geht aber ein bißchen zu Lasten der Serverperfomance:

    includes/css/style.css?<?php echo md5_file ( "includes/css/style.css" ); ?>

    Du solltest Dir im übrigen angewöhnen die "langen" PHP-Tags (<?php ?>) zu benutzen.

    Gruß,
    DL