FF ladet CSS ASYNC?
mixmastertobsi
- css
Hallo Zusammen,
kann es sein, dass der FF seit neuestem den CSS File eine Seite Asnync ladet. Mir ist es bei meiner Seite aufgefallen, dass wenn man F5 drückt, ganz kurz die Seite ohne CSS zu sehen ist und dann die Seite korrekt dargestellt wird.
Dieses "Problem" konnte ich nun nicht nur auf meiner Seite beobachten, sondern auch hier bei selfhtml.org.
Könnt Ihr ähnliches feststellen?
Tag,
Kann es sein, dass der FF seit neuestem die CSS-Datei einer Seite asynchron lädt?
grundsätzlich haben Browser schon immer mehrere Sachen gleichzeitig geladen, zudem kann es gerade beim erneuten Laden einer Seite sein, dass Teile bereits vorliegen, da bereits früher runtergeladen und noch "frisch".
Schau in die Netzwerkanalyse (im Firefox-Menü unter den Entwicklerwerkzeugen zu finden), da ist der Ablauf millisekundengenau aufgeführt.
Schönen Abend!
Hello,
es gibt dazu einige interessante Artikel im Web. Dieser hier ist nur einer von vielen.
Generell ist der CSS-Request aber ein Sekundärrequest. Er wird ja erst im Dokument der primären Response referenziert. Der Browser kann also erst die Style- und Farbinformationen mit dem DOM verbinden, wenn er sie geladen und geparst hat.
Liebe Grüße
Tom S.
Hallo und Danke! Die Frage, welche ich mir hier stelle ist - warum habe ich dieses Problem nur bei manchen Seiten?
In meinem beispiel betrifft es www.slewo.com.
Aber auch die Startseite von http://selfhtml.org/ ist dieses "Problem" zu sehen.
Wenn man sich oben im Menü bei selfhtml die Links anschaut, sieht man auch, wie diese beim Laden der Seite langsam die Farbe ändern und größer werden. Das liegt an CSS-Transition, weil der Link eben erst "ohne" CSS sichtbar ist und dann in seiner richtigen Farbe und Größe erscheint.
Bei mir ist das Problem ähnlich. Padding ist beim Laden der Seite 0 und wird dann mit Transition auf 80% langsam vergrößert. Diesen Effekt möchte ich beim Laden der Seite nicht sehen, sondern hier sollen gleich die 80% sein und erst beim :hover sollen es zum Beispiel 100% sein.
padding-bottom: 80%;
transition: padding-bottom .5s;
Hello,
Hallo und Danke!
Hat der Link wenigstens weitergeholfen?
Die Frage, welche ich mir hier stelle ist - warum habe ich dieses Problem nur bei manchen Seiten?
In meinem beispiel betrifft es www.slewo.com.
Die kam eben selbst auf meinem Dampfrechner ganz flott und super gleichzeitig (Markup und Styles).
Aber auch die Startseite von http://selfhtml.org/ ist dieses "Problem" zu sehen.
Da habe ich das öfter bei der Anmeldeseite. Die kommt eigentlich immer erst ungeschminkt daher, wenn ich sie das erste Mal am Tag aufrufe.
Bei TCP kann man dem Webserver und der ganzen Übertragungskette aber kaum vorschreiben, in welcher Reihenfolge wie schnell die Pakete über welchen Weg zum Client gelangen. Und wer weiß schon, wer da unterwegs noch alles kurz mitliest, filtert und manipuliert.
Wie ist das denn eigentlich mit den Sekundärrequests eines HTTPS-Hauptrequests? Werden die immer sicher ebenfalls per HTTPS übertragen?
Liebe Grüße
Tom S.
Hallo
Wie ist das denn eigentlich mit den Sekundärrequests eines HTTPS-Hauptrequests? Werden die immer sicher ebenfalls per HTTPS übertragen?
Nicht „immer“, aber das muss man bewusst herbeiführen.
Wenn die Ziele der Sekundärrequests im Dokument per HTTPS referenziert sind, ja. Sind sie relativ zum per HTTPS aufgerufenen Dokument angegeben, sind sie es. Sind sie mit HTTP angegeben, werden sie auch per HTTP übertragen. Allerdings meckern dann die Browser und das sieht nicht aus.
Tschö, Auge
Hello,
Wie ist das denn eigentlich mit den Sekundärrequests eines HTTPS-Hauptrequests? Werden die immer sicher ebenfalls per HTTPS übertragen?
Nicht „immer“, aber das muss man bewusst herbeiführen.
Wenn die Ziele der Sekundärrequests im Dokument per HTTPS referenziert sind, ja. Sind sie relativ zum per HTTPS aufgerufenen Dokument angegeben, sind sie es. Sind sie mit HTTP angegeben, werden sie auch per HTTP übertragen. Allerdings meckern dann die Browser und das sieht nicht aus.
Wie Du das so beschreibst, ist mir das auch klar verständlich.
Dann wird die "CSS-Lücke" vermutlich auf HTTPs-Verbindungen öfter auftreten, als auf normalen HTTP-Verbindungen. Bei HTTP muss der Webserver die angeforderten Ressourcen nur durchleiten. Bei HTTPs muss er pro Verbindung erst die Verschlüsselung aushandeln, dann die Ressource verschlüsseln und kann dann erst senden. Ich vermute mal, dass das Aushandeln der Verschlüsselung und das Verschlüsseln ca. vier- bis fünfmal solange dauert, wie ein unverschlüsselter einfacher Request.
Wenn sich das nicnt schon rein logisch erklären lässt, müsste man das mal beobachten.
Liebe Grüße
Tom S.
Hallo TS,
Bei HTTPs muss er pro Verbindung erst die Verschlüsselung aushandeln,
Nein, dafür gibt es Sessions und session resumption. Der Handshake muss erst nach Ablauf der Session wiederholt werden.
dann die Ressource verschlüsseln und kann dann erst senden.
Nein, TLS unterstützt stream ciphers, es muss also nicht erst alles verschlüsselt werden, sondern es wird ein Stream rausgeschickt; und selbst wenn kein stream cipher benutzt wird, die anderen ciphers sind block ciphers, es muss also nur der Block abgewartet werden und nicht das ganze Dokument.
Ich vermute mal, dass das Aushandeln der Verschlüsselung und das Verschlüsseln ca. vier- bis fünfmal solange dauert, wie ein unverschlüsselter einfacher Request.
Vermutungen sind im Bereich Performance immer schlecht. Wieviel langsamer HTTPS ist, hängt sehr stark vom Anwendungsfall ab, das musst du benchmarken. HTTPS kann in der Praxis sogar deutlich schneller sein als HTTP, weil HTTP 2 benutzt werden kann - hängt aber, wie gesagt, vom Anwendungsfall ab.
Edit: Siehe auch dieser Artikel und diesen Test.
LG,
CK
Hello,
das hieße also, dass die Verbindung bzw. TCP-Session für die gesamte Zeit vom Primärrequest bis zum Ende des letzten Sekundärrequests aufrecht erhalten wird? Wie lange ist das üblicherweise maximal, bis die Session "abreißt"?
Wie ist das dann mit anschließenden XHRs?
Könnten die dann auch noch über dieselbe Session abgewickelt werden, oder benötigen die auf jeden Fall (jeder?) eine eigene neue Session?
Liebe Grüße
Tom S.
Hallo TS,
das hieße also, dass die Verbindung bzw. TCP-Session
Nicht durcheinander werfen! Eine TLS-Session ist etwas anderes als eine TCP-Session. Eine TCP-Session (-Verbindung) kann durchaus beendet sein, die TLS-Session gilt weiter. Genau hierfür ist ja der Mechanismus entworfen worden, um zu verhindern, dass man immer neu den kompletten TLS-Handshake machen muss, inklusive des aushandelns der Keys und so weiter.
für die gesamte Zeit vom Primärrequest bis zum Ende des letzten Sekundärrequests aufrecht erhalten wird?
Und darüber hinaus. Und nicht nur eine (außer bei HTTP/2, da ist es AFAIR tatsächlich nur eine), sondern zwischen 4 und 6.
Wie lange ist das üblicherweise maximal, bis die Session "abreißt"?
Stark Browser-abhängig, der IE/Edge hat z.B. ein 1-Minuten-Timeout. Bei Firefox war es sogar um die zwei Minuten, AFAIR.
Wie ist das dann mit anschließenden XHRs?
Wenn die Verbindung noch besteht, wird die genutzt. Muss eine neue Verbindung aufgebaut werden, wird session resumption benutzt. Ist das nicht möglich, wird ein neuer TLS-Handshake ausgeführt.
Könnten die dann auch noch über dieselbe Session abgewickelt werden, oder benötigen die auf jeden Fall (jeder?) eine eigene neue Session?
Das hängt von der Zeit ab, in der nichts getan wurde. Ist die Session abgelaufen, muss eine neue aufgebaut werden. Da aber häufige Werte für TLS-Session-Timeouts irgendwo zwischen 10 und 30 Minuten liegen, kannst du davon ausgehen, dass die überwiegende Mehrzahl der XHR-Requests über die gleiche Session abgehandelt werden kann.
LG,
CK
Hallo
Edit: Siehe auch … diesen Test.
Beeindruckend. HTTPS: zwischen 0.5 und 1.0 Sekunden, HTTP: stabil bei 13.0-irgendwas Sekunden. Da macht sich das bei HTTPS verwendete HTTP/2-Protokoll mehr als nur bemerkbar.
*btw*: Mein Hoster bietet mir ein kostenfreies Let's-Encrypt-Zertifikat nur für eine Domain (!) (ohne deren Subdomains) an. Ansonsten sind über 20€/Monat fällig, was ich heutzutage nicht für angemessen halte. MMn ist es Zeit zum wechseln.
Kann mir jemand einen Hoster für „normalen“ Webspace empfehlen, bei dem ich ein Let's-Encrypt-Zertifikat für alle Subdomains einer Domain haben kann? Die Seite als „example.com“ per HTTPS aufrufen zu können, als „www.example.com“ aber nicht, ist für mich nicht zufriedenstellend.
Tschö, Auge
Hello,
*btw*: Mein Hoster bietet mir ein kostenfreies Let's-Encrypt-Zertifikat nur für eine Domain (!) (ohne deren Subdomains) an. Ansonsten sind über 20€/Monat fällig, was ich heutzutage nicht für angemessen halte. MMn ist es Zeit zum wechseln.
Kann mir jemand einen Hoster für „normalen“ Webspace empfehlen, bei dem ich ein Let's-Encrypt-Zertifikat für alle Subdomains einer Domain haben kann? Die Seite als „example.com“ per HTTPS aufrufen zu können, als „www.example.com“ aber nicht, ist für mich nicht zufriedenstellend.
Was erwartest Du denn, was brauchst Du und was zahlst Du derzeit?
Liebe Grüße
Tom S.
Hallo
*btw*: Mein Hoster bietet mir ein kostenfreies Let's-Encrypt-Zertifikat nur für eine Domain (!) (ohne deren Subdomains) an. Ansonsten sind über 20€/Monat fällig, was ich heutzutage nicht für angemessen halte. MMn ist es Zeit zum wechseln.
Zur Klarstellung, weil eine Bearbeitung meines Postings nach TS' Antwort eine Fälschung meines Postings wäre: Das Ausrufezeichen gehört nicht hinter „eine Domain“, sondern ninter „ohne deren Subdomains“.
Kann mir jemand einen Hoster für „normalen“ Webspace empfehlen, bei dem ich ein Let's-Encrypt-Zertifikat für alle Subdomains einer Domain haben kann?
Was erwartest Du denn, was brauchst Du und was zahlst Du derzeit?
Mindestens:
Nice2Have:
Tschö, Auge
Hello,
Was erwartest Du denn, was brauchst Du und was zahlst Du derzeit?
Mindestens:
- PHP 5.6 und PHP 7 (INI anpassbar)
- 3-5 MySQL-Datenbanken
- Webspace im niedrigen einstelligen GB-Bereich
- eine Domain inklusive zzgl. mind. 20 Subdomains
- SSL-Zertifikat, das alle Subdomains einschließt
- ca. 50 E-Mailadressen mit ebenso vielen Postfächern (IMAP)
- Cronjobs
- Traffic 10 GB/Monat
- Vertragslaufzeit max. 12 Monate
Nice2Have:
- Python (wenn, dann 3.4 mind.)
- Traffic flat
Die Preisvorstellungen habe ich jetzt nicht gesehen ober übersehen?
Ich frag ja nicht nur aus Jux.
Mein einer Root-Server langweilt sich, weil mir niemand in den A.... tritt, wenigstens mal meine privaten "Projektlein" in Angriff zu nehmen. Die echten Projekte werden da wohl immer Wunschvorstellung bleiben. Ich benutze ihn eigentlich nur, um ihn als "Vorkoster" für Kundenserver zu benutzen. Es könnte also auch schon mal etwas schief gehen, ist es aber in 10 Jahren noch nie. Ich bin hier eben einfach zu konservativ.
Liebe Grüße
Tom S.
Hallo Auge,
*btw*: Mein Hoster bietet mir ein kostenfreies Let's-Encrypt-Zertifikat nur für eine Domain (!) (ohne deren Subdomains) an. Ansonsten sind über 20€/Monat fällig, was ich heutzutage nicht für angemessen halte. MMn ist es Zeit zum wechseln.
Hehe, ganz schön unverschämt.
LG,
CK
Hello,
*btw*: Mein Hoster bietet mir ein kostenfreies Let's-Encrypt-Zertifikat nur für eine Domain (!) (ohne deren Subdomains) an. Ansonsten sind über 20€/Monat fällig, was ich heutzutage nicht für angemessen halte. MMn ist es Zeit zum wechseln.
Hehe, ganz schön unverschämt.
Wenn er denn alles dafür regelt?
Angesichts der Tantiemen unserer "Führungseliten" empfinde ich diese Forderung als eher mickrig. Aber ich ahne schon, dass ich die Transformation da an der falschen Stelle eingeklinkt habe ;-P
Nichtsdestotrotz gebührt jeder Leistung ein gerechter Lohn. Wird Zeit, dass wir und gemeinschaftlich dafür einsetzen. Ich hab da nur die "Dozentenvergütungen" für freie Lehrkräfte im Hinterhirn!
Liebe Grüße
Tom S.
Hallo TS,
*btw*: Mein Hoster bietet mir ein kostenfreies Let's-Encrypt-Zertifikat nur für eine Domain (!) (ohne deren Subdomains) an. Ansonsten sind über 20€/Monat fällig, was ich heutzutage nicht für angemessen halte. MMn ist es Zeit zum wechseln.
Hehe, ganz schön unverschämt.
Wenn er denn alles dafür regelt?
Da gibt es nichts zu regeln. Let's Encrypt ist 100% automatisierbar. 20€ für eine voll automatisierte Dienstleistung zu bieten, bei der man keinen Wartungsaufwand hat und selber nichtmal den Dienst stellt (den stellt ja die Mozilla Foundation) ist verdammt unverschämt.
LG,
CK
Hallo
Da gibt es nichts zu regeln. Let's Encrypt ist 100% automatisierbar. 20€ für eine voll automatisierte Dienstleistung zu bieten, bei der man keinen Wartungsaufwand hat und selber nichtmal den Dienst stellt (den stellt ja die Mozilla Foundation) ist verdammt unverschämt.
Das 20€/Monat-Zertifikat ist nicht von Let's Encrypt. Der Preis mag beim Aussteller dieses Zertifikats sogar angemessen sein. Ich sehe nur nicht ein, dieses Zertifikat nehmen zu müssen, obwohl ein Let's-Encrypt-Zertifikat das, was ich brauche, auch könnte.
Tschö, Auge
Hello,
Nanunana. Ich dachte eben, mein Posting wäre im Nirwana. Aber zumindest war es noch nicht fertig.
*btw*: Mein Hoster bietet mir ein kostenfreies Let's-Encrypt-Zertifikat nur für eine Domain (!) (ohne deren Subdomains) an. Ansonsten sind über 20€/Monat fällig, was ich heutzutage nicht für angemessen halte. MMn ist es Zeit zum wechseln.
Hehe, ganz schön unverschämt.
Wenn er denn alles dafür regelt?
Da gibt es nichts zu regeln.
Nun sei bitte nicht ungerecht!
Richtet sich das Zertifikat von alleine ein? Nein!
Let's Encrypt ist 100% automatisierbar. 20€ für eine voll automatisierte Dienstleistung zu bieten, bei der man keinen Wartungsaufwand hat und selber nichtmal den Dienst stellt (den stellt ja die Mozilla Foundation) ist verdammt unverschämt.
20€ finde ich auch unverschämt, zumal andere Hoster "namhafte Zertifikate" für 5-10€ im Jahr anbieten nebst Einrichtung. Aber ich finde Millionen im Jahr für das Hantieren mit fremdem Geld (sogar bei Totalverlust) noch unverschämter. Und ich denke, dass Du das auch verstanden hattest. Es kommt immer auf die Maßstäbe an. Und alles kann man nicht umsonst machen!
Liebe Grüße
Tom S.
Hallo TS,
Wenn er denn alles dafür regelt?
Da gibt es nichts zu regeln.
Nun sei bitte nicht ungerecht!
Richtet sich das Zertifikat von alleine ein? Nein!
Je nach verwendeter Software: ja.
Aber ich finde Millionen im Jahr für das Hantieren mit fremdem Geld (sogar bei Totalverlust) noch unverschämter. Und ich denke, dass Du das auch verstanden hattest.
Wenn du denkst, dass ich das verstanden habe, was sagt dir dann die Tatsache, dass ich nicht darauf reagiert habe?
LG,
CK
Hello,
Aber ich finde Millionen im Jahr für das Hantieren mit fremdem Geld (sogar bei Totalverlust) noch unverschämter. Und ich denke, dass Du das auch verstanden hattest.
Wenn du denkst, dass ich das verstanden habe, was sagt dir dann die Tatsache, dass ich nicht darauf reagiert habe?
Nichts!
Ich habe mir einach abgewöhnt, etwas in die Nichtreaktion von Anderen hineinzuinterpretieren. :-)
Wenn Du nicht sagst, was Du denkst, kann ich das also gar nicht berücksichtigen.
Und lass es mit mir bitte nie auf einen "Schwanzvergleich" ankommen. Dabei kann nur herauskommen, dass deiner viel zu groß ist, um die eigentliche Aufgabe zu erledigen. Ich muss mich gar nicht mehr beteiligen, weil meine Aufgabe schon erfüllt ist.
Das hat aber nichts damit zu tun, dass ich Dich und dein Wissen respektiere. Jedenfalls danke ich Dir für die vielen guten und sachlichen Antworten zu meinen Fragen. Schon deshalb stelle ich HIER die Fragen und nicht woanders!
Liebe Grüße
Tom S.
Hallo TS,
Aber ich finde Millionen im Jahr für das Hantieren mit fremdem Geld (sogar bei Totalverlust) noch unverschämter. Und ich denke, dass Du das auch verstanden hattest.
Wenn du denkst, dass ich das verstanden habe, was sagt dir dann die Tatsache, dass ich nicht darauf reagiert habe?
Nichts!
Na dass ich an dieser Diskussion nicht interessiert bin.
LG,
CK
Hello,
Aber ich finde Millionen im Jahr für das Hantieren mit fremdem Geld (sogar bei Totalverlust) noch unverschämter. Und ich denke, dass Du das auch verstanden hattest.
Wenn du denkst, dass ich das verstanden habe, was sagt dir dann die Tatsache, dass ich nicht darauf reagiert habe?
Nichts!
Na dass ich an dieser Diskussion nicht interessiert bin.
Macht nix, wird trotzdem verkauft!
Aber da ist es wieder, unser Problem mit "Nichts", Null, >Timeout<, usw.
Liebe Grüße
Tom S.
Hallo
*btw*: Mein Hoster bietet mir ein kostenfreies Let's-Encrypt-Zertifikat nur für eine Domain (!) (ohne deren Subdomains) an. Ansonsten sind über 20€/Monat fällig, was ich heutzutage nicht für angemessen halte. MMn ist es Zeit zum wechseln.
Hehe, ganz schön unverschämt.
Wenn er denn alles dafür regelt?
Naja, kommt darauf an, was „alles dafür regelt“ konkret bedeutet.
Ich kann, wie gesagt, ein LE-Zertifikat haben. Das Zertifikat wird von der Zertifizierungsstelle kostenlos ausgestellt, ich bekomme es auch kostenfrei und kann es „example.com“ zuweisen und dann für „example.com“ HTTPS mit eigenem Zertifikat nutzen. Für „www.example.com“ oder „hastenichgesehn.example.com“ gilt das Zertifikat aber nicht, obwohl das technisch durchaus möglich wäre. Bei der Beantragung müssten bloß alle Subdomains, für die das Zertifikat gelten soll, mit übergeben werden. Für solche Fälle, also Subdomains inklusive, wird mir stattdessen ein nicht kostenfreies Zertifikat angeboten. Dafür sind aber, wie auch schon gesagt, über 20€/Monat fällig.
Ich habe kein Problem damit, meinen Hoster für den Betrieb der Infrastruktur, die zum Handling der Zertifikate notwendig ist, zu bezahlen. Das gilt auch für die Infrastruktur gegenüber dem kostenfreien Let's Encrypt. Ich sehe aber nicht ein, das technisch mögliche Let's-Encrypt-Zertifikat für alle meine Subdomains vorenthalten zu bekommen und stattdessen ein Zertifikat zu Mondpreisen nehmen zu müssen, wenn ich eines „für alles“ haben will/brauche.
Tschö, Auge
Hello,
Wenn er denn alles dafür regelt?
Naja, kommt darauf an, was „alles dafür regelt“ konkret bedeutet.
Ich kann, wie gesagt, ein LE-Zertifikat haben. Das Zertifikat wird von der Zertifizierungsstelle kostenlos ausgestellt, ich bekomme es auch kostenfrei und kann es „example.com“ zuweisen und dann für „example.com“ HTTPS mit eigenem Zertifikat nutzen. Für „www.example.com“ oder „hastenichgesehn.example.com“ gilt das Zertifikat aber nicht, obwohl das technisch durchaus möglich wäre. Bei der Beantragung müssten bloß alle Subdomains, für die das Zertifikat gelten soll, mit übergeben werden. Für solche Fälle, also Subdomains inklusive, wird mir stattdessen ein nicht kostenfreies Zertifikat angeboten. Dafür sind aber, wie auch schon gesagt, über 20€/Monat fällig.
Das versuche ich ja gerade für mich auf den Schirm zu bekommen.
Es ist nicht unbedingt ohne jegliche Arbeit und Überlegung und Zeiteinsatz regelbar. Und wenn man die üblichen Stundensätze für Anwälte zugrundelegt ...
[...]
Darum lass uns doch mal überlegen, welche Alternativen es gäbe.
Dass ich ein Stinkstiefel sein kann, weißt Du ja inzwischen, aber das ist nur ganz selten ernst gemeint, meistens bin ich äußerst tolerant, aber eben auch konsequent inkonsequent. Ich halte es da mit Adenauer.
Liebe Grüße
Tom S.
Hallo Zusammen,
ich konnte das Problem etwas eingrenzen.
Wenn die Webseite ein Javascript im Head-Bereich hat, welches NICHT ASYNC DEFER gelanden wird, besteht das Problem mit dem "verspäteten" css nicht. Des Weiteren tritt das Problem auch nur im IE und FF auf.
Naja - für in jedem Fall merkwürdig.