Ergebnis 1 bis 8 von 8

Thema: HTTP/2: Beschreibung von "Skripte zusammenfassen" zwischen 4.4 & 4.5 unterschiedlich?

  1. #1
    Contao-Nutzer Avatar von Der Astronaut
    Registriert seit
    20.07.2012.
    Ort
    Weltall
    Beiträge
    241

    Standard HTTP/2: Beschreibung von "Skripte zusammenfassen" zwischen 4.4 & 4.5 unterschiedlich?

    Tach,

    folgendes betrifft insbesondere HTTP/2-Nutzer.

    In Contao 4.4 und 4.5 unterscheiden sich die Erklärungen für den Punkt "Skripte zusammenfassen" (Themes » Seitenlayout) verwirrender Weise sehr stark

    Contao 4.4: Die .css- und .js-Dateien zusammenfassen (für HTTP/2 nicht aktivieren).

    Contao 4.5: Die .css- und .js-Dateien zusammenfassen (empfohlen).


    Was sollte ich als HTTP/2-Nutzer denn nun machen?

  2. #2
    Contao-Nutzer Avatar von Der Astronaut
    Registriert seit
    20.07.2012.
    Ort
    Weltall
    Beiträge
    241

    Standard

    Es muss ja irgendwo und irgendwann mal beschlossen worden sein, dass aus dem (für HTTP/2 nicht aktivieren) ein (empfohlen) wurde. Auf Github konnte ich dazu nichts finden. Aber hier sind doch auch ein paar Contao-Entwickler unterwegs, die vielleicht etwas darüber wissen könnten.

    Meinem derzeitigen Wissensstand nach, ist das Zusammenfassen der Dateien für HTTP/2 kontraproduktiv. Demnach würde es sich doch bei 4.5.x um eine fehlerhafte Beschriftung handeln. Allerdings muss es ja auch einen Grund geben, warum diese Beschriftung in Contao 4.5 geändert wurde.

    Ich wäre dankbar, wenn sich jemand zu Wort melden könnte.

  3. #3
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Der Grund dafür ist wie so oft in unserem Business: It depends
    Du kannst nicht mehr pauschal beantworten, ob es besser ist, alles zu einem Bundle zusammenzufassen oder nicht.

    Bei HTTP 1.1 war es so, dass ein zusätzlicher Request sehr teuer war. Es war also eigentlich immer besser, die Anzahl der Requests zu reduzieren. Der Nachteil dabei ist, wenn dein Bundle aus 20 Dateien besteht und du eine davon änderst, so muss der Client sich das gesamte Bundle neu herunterladen, auch wenn er eigentlich 19 davon bereits hätte. Die Requests waren aber so teuer, dass man das gerne in Kauf genommen hat und daher war es eigentlich immer gut, so wenig Requests wie möglich zu erzeugen.

    Bei HTTP2 ist ein zusätzlicher Request nicht mehr so teuer. D.h. es ist jetzt grundsätzlich besser, die 20 Dateien einzeln auszuliefern, weil dadurch eben dieser Nachteil nicht mehr besteht, da alle 20 Dateien individuell gecached werden. ABER: Angenommen du hast eine "reset.css" und eine "basic.css", also zwei Dateien die grundsätzlich immer zusammengehören und auch auf jeder Seite immer zusammen ausgeliefert werden, dann wäre es immer noch sinnvoll die zu bundeln, weil du selten daran etwas ändern wirst und auch wenn ein zusätzlicher Request bei HTTP2 nicht mehr so teuer ist wie bei HTTP 1.1, so ist es immer noch ein zusätzlicher Request.
    Hier geht es ja vor allem um den allerersten Aufruf, also wenn du noch nichts im Cache hast. So messen ja auch die Suchmaschinen die Geschwindigkeit und da ist es eben doch sinnvoll, gewisse Dinge zusammenzupacken.

    Also wenn ich eine generelle Empfehlung abgeben müsste:
    • Bundle: Alle Stylesheets und Javascripts die auf der gesamten Seite immer zusammen ausgeliefert werden und sich selten ändern.
    • Separat: Alle Dateien, die nachgeladen werden können (bspw. Slider, Galerie-Skripte, etc.) oder sich öfter mal ändern.


    Im Prinzip wurde diese Bezeichnung wohl nur angepasst um präziser zu sein. Es macht in den meisten Fällen wohl Sinn, das für HTTP2 zu aktivieren, aber nur weil man jetzt HTTP2 hat, heisst das nicht zwingend, dass jede Datei einzeln zu requesten unter allen Umständen immer besser ist. Daher ist es halt nur eine Empfehlung.

    Macht das irgendwie Sinn?
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  4. #4
    Contao-Nutzer
    Registriert seit
    06.09.2016.
    Beiträge
    125

    Standard

    In einem anderen Beitrag wurde zusätzlich auf die Cache-Problematik hingewiesen: wenn die Skripte einzeln ausgeliefert werden und ein Nutzer eine css mit einer Lebensdauer von 30 Tagen im Cache liegen hat, würde er in diesen 30 Tagen mögliche Änderungen an dieser Datei nicht mitbekommen.

    Bei "Skripte zusammenfassen" erstellt Contao ja jedesmal einen neuen Dateinamen, so dass dieses Problem nicht auftritt. Von daher wäre das schon besser, wenn man nicht manuell darauf achten möchte den Skript-Dateinamen zu ändern.

  5. #5
    Contao-Nutzer Avatar von Der Astronaut
    Registriert seit
    20.07.2012.
    Ort
    Weltall
    Beiträge
    241

    Standard

    Ich danke euch sehr für eure Antworten!

    Dass die CSS-Dateien mit unter im Browser-Cache "fest hängen" können, ist mir auch schon aufgefallen. Manchmal half da nur den Browser-Cache zu löschen. Darauf wird aber nicht jeder Besucher kommen. Ein Grund mehr die Dateien wieder zusammenzufassen!

  6. #6
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Für sowas nutzt man Hashes an der URL um sog. Cache Busting zu betreiben. Ist auch teilweise schon in Contao vorhanden, aber noch nicht überall
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von Toflar Beitrag anzeigen
    Für sowas nutzt man Hashes an der URL um sog. Cache Busting zu betreiben. Ist auch teilweise schon in Contao vorhanden, aber noch nicht überall
    Bei eingebundenen CSS und JavaScript Dateien ja eben nicht - daher kann man sich mit dem Zusammenfassen behelfen, um dadurch wieder ein Cache Busting zu erhalten.

  8. #8
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Ja, deswegen sag ich ja: Noch nicht überall. Die Basis ist schon da, wir nutzen die Asset-Komponente schon in den Templates an diversen Orten über den neuen
    PHP-Code:
    $this->asset(); 
    Helper. Man müsste diese Logik noch ausweiten auf die eigenen Dateien.
    Wäre ein nettes Feature für die 4.6, falls du es dir mal ansehen magst ;-)
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •