Chrome: Hyphens und Cache Problematik
Henry
- browser
- css
- mobile
Hallo,
auch wenn ich selbst Chrome(weil Google) nicht mag, so muss ich doch leider Anwendungen für diesen, vor allem mobile Version, als Primärziel anvisieren.
Doch dabei stören mich einige Dinge. Angeblich soll Silbentrennung mittlerweile mit Chrome funktionieren. Aber irgendwie nicht. Nutze zwar:
-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;
aber keine Auswirkung, alle anderen Browser schon. Mache ich etwas falsch?
Dann die Cacheproblematik. Habe eben ewig lange Fehlersuche betrieben und dann erst gemerkt, dass es am Chrome-Cache liegt. Chrome/Google will offensichtlich den Usern eine Schnelligkeit simulieren, die aber auf Kosten der Aktualität geht. Zumindest, dauern kleine Veränderungen, besonders in Verweisdateien(CSS/JS), ewig bis gar nicht. Erst beim manuellen Löschen des Caches kommt die aktuelle Seite zum Vorschein.
Nur, wer weiß das von den normalen Usern und selsbt wenn es Einstellmöglichkeiten geben sollte, sind die nicht per Default da. Bedeutet das nun, ich muss hier tricksen, also zb. aktuelle Zeit als Parameter mit in den Verweisen oder im Html angeben, damit Chrome denkt, wäre was Neues, oder gibt's einen anderen Weg?
Gruss
Henry
Angeblich soll Silbentrennung mittlerweile mit Chrome funktionieren.
Hast du die Fußnoten gelesen? Chrome scheint nur eingeschränkte Unterstützung für Silbentrennung zu haben.
Bedeutet das nun, ich muss hier tricksen, also zb. aktuelle Zeit als Parameter mit in den Verweisen oder im Html angeben, damit Chrome denkt, wäre was Neues, oder gibt's einen anderen Weg?
Ja, Zeitstempel an Links zu hängen ist schmutziger Tricke, der schon ewig lange kursiert, den aber eigentlich niemand mehr braucht. HTTP sieht diverse Kopfdaten vor, um Browsercaching zu steuern. Einfach mal nach Cache-Control
oder ETag
suchen.
Hallo 1unitedpower,
Ja, Zeitstempel an Links zu hängen ist schmutziger Tricke, der schon ewig lange kursiert, den aber eigentlich niemand mehr braucht. HTTP sieht diverse Kopfdaten vor, um Browsercaching zu steuern. Einfach mal nach
Cache-Control
oderETag
suchen.
Du meinst damit die Header durch zb. PHP setzen? Was, wenn es nur HTML-Seiten sind?
Alternativ:
Macht die Steinzeitvariante <meta http-equiv="pragma" content="no-cache">
noch Sinn?
Gruss
Henry
Hallo 1unitedpower,
Ja, Zeitstempel an Links zu hängen ist schmutziger Tricke, der schon ewig lange kursiert, den aber eigentlich niemand mehr braucht. HTTP sieht diverse Kopfdaten vor, um Browsercaching zu steuern. Einfach mal nach
Cache-Control
oderETag
suchen.
Das ist nur halb richtig. Man nutzt fingerprinting vor allem für Bilder, CSS und JS immer noch gerne, weil es einem erlaubt ein Expires-Datum weit in der Zukunft zu setzen. Das sorgt dafür, dass gar nicht erst ein Request für die Ressourcen abgesetzt wird, sondern direkt die Ressource aus dem Cache genommen wird. Um trotzdem Änderungen machen zu können, wird ein Fingerprint an die Datei angehängt; das kann der Timestamp der letzten Änderung sein, das kann auch ein Hash über den Inhalt der Datei sein. Beispiel hier aus dem Forum:
➜ ckruse@sunshine ~ % curl -I https://forum.selfhtml.org/assets/application-fe30121adc9984f9b5682755ee9b5aefdc4d2eedd2e1565a513d56306d3e71dc.css
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Tue, 03 Apr 2018 04:58:07 GMT
Content-Type: text/css
Content-Length: 137297
Last-Modified: Wed, 24 Jan 2018 07:52:01 GMT
Connection: keep-alive
Vary: Accept-Encoding
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
Cache-Control: public
Accept-Ranges: bytes
➜ ckruse@sunshine ~ %
Wenn ich jetzt eine Änderung am CSS mache, wird die CSS-Datei im Deployment umbenannt und erhält einen neuen Hash-Teil. Die alte Datei bleibt erstmal liegen. Der Browser ruft die application.css
gar nicht erst ab, sondern nimmt die aus dem Cache. Erst wenn ich tatsächlich etwas ändere, muss der Browser die neue Datei abrufen.
LG,
CK
@@Henry
Angeblich soll Silbentrennung mittlerweile mit Chrome funktionieren. Aber irgendwie nicht. Nutze zwar:
-webkit-hyphens: auto; -moz-hyphens: auto; -ms-hyphens: auto; hyphens: auto;
Der -moz-
-Präfix ist unsinnig; die Quelle hast du selbst verlinkt.
aber keine Auswirkung, alle anderen Browser schon. Mache ich etwas falsch?
Offenbar, denn Chrome macht Silbentrennung. Spekulieren wir mal:
Allerdings macht auch Chrome was falsch, Safari ebenso: sie machen auch dann Silbentrennung, wenn sie es laut Spec gar nicht dürften: wenn keine Sprache angegeben ist.
LLAP 🖖
Hallo Gunnar,
Der
-moz-
-Präfix ist unsinnig; die Quelle hast du selbst verlinkt. ´
Klar, antikes Relikt, aber schadet ja nicht.
aber keine Auswirkung, alle anderen Browser schon. Mache ich etwas falsch?
Offenbar, denn Chrome macht Silbentrennung. Spekulieren wir mal:
Tja…
- Du hast Fußnote [1] auf besagter Can-I-use-Seite nicht gelesen.
- Du hast dir’n falschen™ Rechner zugelegt.
was heißt Rechner, Android. Und das sollte laut Fußnote gehen.
Gruss
Henry
Hej Henry,
Der
-moz-
-Präfix ist unsinnig; die Quelle hast du selbst verlinkt.
Klar, antikes Relikt, aber schadet ja nicht.
Überflüssiges schadet schon. Kostet Zeit und erschwert die Wartung. Auch wenn das in diesem Fall ein eher geringer Schaden sein dürfte, ist die Aussage „schadet ja nicht“ viel öfter falsch, als wir es uns in unserer Bequemlichkeit eingestehen (wollen)…
Ich schließe uns alle in Marc ausdrücklich ein (diesmal ausnahmsweise ohne Ausnahme!).
Marc
@@Henry
was heißt Rechner, Android. Und das sollte laut Fußnote gehen.
Ich kann bestätigen, dass es nicht geht.
LLAP 🖖