Gerd Siebert: Bilder Refresh

Hallo,
ich möchte in meinem Board, dass der Browser jedesmal die perl generierten Seiten lädt, ohne sie überhaupt zu cachen.  Die vielen kleinen Board-Bildchen sollen aber gerade, wenn sie im Cache sind NIE neu geladen.  Ich möchte sogar, dass der Browser nicht mal nachfragt, ob es vielleicht eine neue Variante gibt, weil das über Proxies die Zeit des gesamten Seitenaufbaus dramatisch erhöht, weil diese Bildchen zum größten Teil aus Java-Script Aufrufen kommen. (Übrigens habe ich keine Erklärung warum das so ist, aber es ist so!)

Ich hoffe, dass ich das Problem einigermaßen verständlich beschrieben habe ;)...  und erst recht hoffe ich, dass jemand das Problem kennt und eine Lösung hat.

Vielen Dank schon mal im voraus - Gerd

  1. Hello,

    mmh, dass er zumindest nachfragt, ob es eine nue Variante gibt, lässt sich durch die Ausleiferung eines Last-Modified Headers steuern, zumindest als Bitte an den Browser. Was der dann tatsächlich macht, ist ihm oder seinem Benutzer überlassen.

    Ob man ihn auch bitten kann, nie wieder nachzufrgen, enzieht sich meiner Kenntnis.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Sehr vielen Dank für Deine Antwort.
      Es wäre toll, wenn man die Bildchen aus den temporären Dateien holen könnte so wie file::...! Mit dem 'meta http-equiv="expires" content="0"' bekommt man es ja hin, dass die Seiten des Boards immer aktuell angezeigt werden, aber es werden eben auch absolut unnötigerweise sämtlich Boardbildchen nachgeladen.  Und das dauert....

      1. Hallo.

        Mit dem 'meta http-equiv="expires" content="0"' bekommt man es ja hin, dass die Seiten des Boards immer aktuell angezeigt werden,

        Nope. Das ist nur eine freundliche Bitte an den Browser, der dieser keineswegs zwingend nachkommen muss.
        MfG, at

        1. Joah!  Ich weiß.  Aber das ist auch nicht das Problem, denn ich kann ja von der Serverseite einen Timestamp in der Commandline und in Formularaufrufen einfügen - das klappt ja auch total prima!
          Das andere mit den Bildchen ist mein eigentliches Problem. Unendlicher, unnötiger Traffic und vor allen Dingen eine tierische Wartezeit, bis z.B. alle Buttons für die ubbc-Codes da sind.
          Greets Gerd

          Nope. Das ist nur eine freundliche Bitte an den Browser, der dieser keineswegs zwingend nachkommen muss.
          MfG, at

          1. Hallo Gerd

            ... Aber das ist auch nicht das Problem, denn ich kann ja von der Serverseite einen Timestamp in der Commandline und in Formularaufrufen einfügen - das klappt ja auch total prima!

            Dann brauchst du den Browser nicht zu bitten die Seite nicht zu cachen.

            Das andere mit den Bildchen ist mein eigentliches Problem.

            Wenn sich deren URL nicht ändert werden diese (meist) vom Browser aus dem
            Cache geholt.
            Wenn du ihn allerdings bittest die Seite immer neu zu laden...

            Auf Wiederlesen
            Detlef

            --
            - Wissen ist gut
            - Können ist besser
            - aber das Beste und Interessanteste ist der Weg dahin!
            1. Hi, Detlef,
              vielen Dank.
              Aber das mit dem Timestamp ist eine Lösung - gefällt mir aber nicht, ist aber auch eine andere Sache.  Aber eigentlich wäre das ja genau die richtige Lösung!  Denn der HTML-Code hat einen Timestamp und ist damit neu zu holen, weil eben eine andere URL!!!  Aber warum müssen dann die Bildchen - mit derselben alten URL - dabei immer wieder neu geladen?

              1. Hallo Gerd,

                ... Aber warum müssen dann die Bildchen - mit derselben alten URL - dabei immer wieder neu geladen?

                Wenn du <meta http-equiv="expires" content="0"> angibst, bittest du den
                Browser die Seite (und alles darin) in jedem Fall neu vom Server zu laden
                statt aus dem Cache.

                Ohne diese Angabe dürfte der Browser (je nach Usereinstellungen)
                nur kontrollieren, ob die Version im Cache noch die Aktuelle ist.

                Du kannst auch versuchen, eine sehr lange Gültigkeit der Seite anzugeben,
                damit er möglicherweise selbst dieses unterlässt.

                http://de.selfhtml.org/html/kopfdaten/meta.htm#laden

                Auf Wiederlesen
                Detlef

                --
                - Wissen ist gut
                - Können ist besser
                - aber das Beste und Interessanteste ist der Weg dahin!
                1. Hello,

                  das macht der Browser aber für jedes Objekt separat.
                  Wenn die Seite selber aus dem Cache geholt wird, werden ihre Unterobjekte ggf. aber trotzdem neu vom Server angefordert. Deshalb muss jedes Objekt einzeln dann auch im Cache gehalten werden. Um einen Request wirst Du bei der Browsereinstellung "Auto", die üblich wäre, nicht drum herum kommmen. Wenn Dein Server dann auf ein vom Browser geliefertes Vergeleichsdatum nicht reagiert, und statt "304 not modified" die Ressource neu ausliefert, dann ist er eben falsch eingestellt, bzw. die Scripte sind falsch geschrieben.

                  Ich hatte das am Anfang bei meinem kleinen CMS auch. Da werden die Bilder über ein Script ausgeliefert, dass entsprechnend reagieren muss. Seit das ein "last modified" ausliefert ist der effektive Traffic der Seite auf ca. 20% zurückgegangen, obwohl ich die Lebensdauer der Bilder nur auf einen Tag eingestellt habe.

                  Harzliche Grüße aus http://www.annerschbarrich.de

                  Tom

                  --
                  Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                  Nur selber lernen macht schlau
                  1. Hi, Tom,
                    vielen Dank für die ausführliche Erklärung.  Ich muß dazu noch was sagen, weshalb ich überhaupt diese Probleme hier anspreche...:
                    Die ganze Sache ist mir erst aufgefallen, als ich das Server/Client Paket (wenn man es mal so nennen will) umgeschrieben habe, so dass der Client die eigentliche HTML Arbeit aus Java-Scripten erledigen muß.  Also die Serverscripte stellen nur noch Nettodateninhalte zur Verfügung, die als Parameter in Java-Script-Bibliotheken stehen.  Der Vorteil liegt auf der Hand: Die JS_Bibliothek wird nur geladen, wenn sie nicht da ist, oder - na, ja, weiß man ja nun -.  In diesen JS-Funktionen sind alle Tabellenkonstruktionen, Maouse-Over-Texte und eben auch die Boardbildchen enthalten (also in einem document.wtite .... <img src...).  Und jetzt kommt eben das witzige: Erst nach dieser Umbauaktion kleckeren die Bildchen langsamer rein als zuvor, obwohl die Site nur noch 5% so groß ist wie früher und deshalb viel schneller da ist.  Sicher, Nchteil bei der ganzen Sache ist, dass man höhere Performance vom Client erwarten muß,als bei reinem HTML, aber das spielt bei den PC's von heute glaube ich keine große Rolle mehr.
                    Und noch was komisches: Die Probleme mit den Bildchen werden noch größer, wenn es über eine ASTRA-Sat Proxies geht!  Man hat das Gefühl, dass 99% der Verbindung dafür drauf geht, dass der Client nachfragt "Ist das Bild neu?" Und die Server-Proxy Vereinigung damit große Antwortprobleme hat.  Beim "Bildchen nicht aus Java-Scripten" ging's flotter, viel flotter.
                    Das war aber nun 'ne Menge Info...
                    Greets von Gerd