etwas "blockiert" das schnellere Laden meiner Bilder habe Apache-Konfigurationen, Nginx und Cache-Header-Sachen ausprobiert, nichts ändert sich

etwas "blockiert" das schnellere Laden meiner Bilder habe Apache-Konfigurationen, Nginx und Cache-Header-Sachen ausprobiert, nichts ändert sich

DAS THEMA: die Bilder auf meiner Seite brauchen etwas, bis sie geladen werden... als ob etwas blockiert wäre, abernicht in der Lage, genau zu sagen, waskönnte die Ursache sein.

PHP 8 / neuestes WHM

LIVE-BEISPIEL:https://www.stubfeed.com/crypto

WAS ICH VERSUCHT HABE [.0A.]: Wechsel des Webhosting-Unternehmens => keine Änderung, da ist etwas in meinem Webcode ...

WAS ICH VERSUCHT HABE [.0B.] : Ich war mit CentOS 7 und bin auf CentOS 8 umgestiegen => immer noch das Gleiche

WAS ICH VERSUCHT HABE [.0C.]: Deaktivieren von php-fpm => hat sehr geholfen, aber die Wartezeit für die Bilder besteht immer noch.

WAS ICH VERSUCHT HABE [.0D.] : Ausgabepuffer ein oder aus => immer noch das Gleiche

WAS ICH VERSUCHT HABE [.1.]: alle meine .css- und .js-Dateien in weniger Dateien zusammenführen (2.css, 2.js statt mehrerer) // außerdem font-display:swap hinzugefügt;

WAS ICH VERSUCHT HABE [.2.]: Nginx-Reverse-Proxy für Apache (an oder aus => keine Änderung, da Cloudflare als CDN fungiert...)

WAS ICH VERSUCHT HABE [3] : Apache-Konfigurationen

Header set X-XSS-Protection "1; mode=block"
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "no-referrer"
Header always set Permissions-Policy "geolocation=(self),midi=(self),sync-xhr=(self),magnetometer=(self),gyroscope=(self),fullscreen=(self)"

WAS ICH VERSUCHT HABE [4] : .htaccess cache control headers

<IfModule mod_headers.c>
    ExpiresActive On
    <FilesMatch “\.(webp|webm|flv|ico|pdf|avi|mov|mp4|m4v|m4a|ppt|doc|mp3|wmv|wav|gif|jpg|jpeg|png|apng|swf|css|js|otf|ttf|woff)$">
    Header set Cache-Control "max-age=31536000, public"
    </FilesMatch>
</IfModule>

WAS ICH VERSUCHT HABE [5] : konvertierenALLEmeine Bilder in WebP-Qualität 60 (mit iMageMagick) => das hat die Größe stark reduziert ;) ==>> aber das Problem ist trotzdem nicht behoben.

WAS ICH VERSUCHT HABE [6] : in der Google Chrome-Konsole => "Cache leeren, hart neu laden" => scheint schneller zu sein als normales Laden ???

WAS ICH VERSUCHT HABE [7] : in der Google Chrome-Konsole => Registerkarte „Netzwerk“ => Ich sehe, dass es aus dem Cache geladen wurde, aber irgendwie sehe ich mit meinen Augen das Menü sehr schnell, aber alle anderen Bilder warten 1 oder 2 Sekunden, bevor sie angezeigt werden

WAS ICH VERSUCHT HABE [8] : eine Seitenregel in Cloudflare hinzufügenhttps://www.stubfeed.com/media/* Browser-Cache TTL: ein Jahr, Cache-Level: Alles zwischenspeichern, Edge-Cache TTL: 14 Tage, Cache Deception Armor: Ein, Origin Cache Control: Ein

WAS ICH VERSUCHT HABE [9]: 4, 6, 9, 23 Bilder laden => immer das Gleiche, immer noch: was ich mit meinen Augen sehe (1 Sekunde warten, dann erscheinen Bilder...) [sagt der Geschwindigkeitstester ...]

WAS ICH VERSUCHT HABE [10] : Service Worker mit Caching alles in Ordnung... => Ich habe es abgeschaltet, weil die Überprüfung aus dem Cache vorher furchtbar langsamer war... :( Sie können es hier sehen:https://www.stubfeed.com/ws.js?v=202108000021(im zwischenspeicherbaren Array habe ich wepb hinzugefügt, aber ich habe es entfernt …)

DAS ERGEBNIS ALL DIESER VERSUCHE: das Menü, die CSS- und die JS-Datei ==>> sehr schnell und augenblicklich … aber Standbilder nach 1 (manchmal 2) Sekunden …

Einen Bericht könnt ihr hier sehen:https://gtmetrix.com/reports/www.stubfeed.com/4MGVqAFv/

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

curl -I https://www.stubfeed.com/media/feed/2021/08/02/14463960829226.webp

HTTP/2 200 
date: Mon, 02 Aug 2021 02:13:44 GMT
content-type: image/webp
content-length: 78296
x-content-type-options: nosniff
referrer-policy: no-referrer
permissions-policy: geolocation=(self),midi=(self),sync-xhr=(self),magnetometer=(self),gyroscope=(self),fullscreen=(self)
last-modified: Mon, 02 Aug 2021 01:40:11 GMT
vary: Accept-Encoding
x-xss-protection: 1; mode=block
strict-transport-security: max-age=15552000; includeSubDomains; preload
cache-control: public, max-age=31536000
cf-cache-status: HIT
age: 1483
accept-ranges: bytes
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=QawI6BH%2FlcrvvsUxJ6VgTJzwNqvb%2BVqBRo1gbxng6JRggJe9MgZbkWhLtMjmwvwC8yB3SLaoJXT%2BvNZDuLCzya1g8HlxGFbpFMzXB%2F4p%2B9GcIGIZANk%2FjfvIx0Lu2t07QIsr"}],"group":"cf-nel","max_age":604800}
nel: {"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 6783c9ea7f3c4bd1-YUL
alt-svc: h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400, h3=":443"; ma=86400

Antwort1

Nach gründlicherem Graben habe ich es gefunden.

Es waren die „Schritte“, die ich hatte … Seite laden, dann Ajax …

Ich habe umgedacht und ein Include gemacht.

Ich habe auch mein Ajax so umgestaltet, dass es asynchron wartet

    async function stubajax (divid,phphat,postix = [],pend = 'html') {
    
        var pcache = (Math.floor(Math.random() * 100000000) + 1);
        
        postix["preventcache"] = pcache;
        postix["divid"] = encodeURIComponent(divid);
        postix["mojax_height"] = encodeURIComponent($(window).height());
        postix["mojax_width"] = encodeURIComponent($(window).width());

postix["cookies"] = decodeURIComponent(document.cookie); // if you need to send cookies
        
        for (var i = 0; i < localStorage.length; i++){ postix[localStorage.key(i)] = localStorage.getItem(localStorage.key(i)); }
        for (var i = 0; i < sessionStorage.length; i++){ postix[sessionStorage.key(i)] = sessionStorage.getItem(sessionStorage.key(i)); }
            
        await fetch(phphat+"?pcache="+pcache+"&fetchx="+pcache, {
          method: "POST", body: JSON.stringify(Object.assign({}, postix)), headers: {"Content-type": "application/json; charset=UTF-8"}
        }).then( response => { return response.text(); }).then( html => { 
            switch ( pend ){
                case 'append' : $("#"+divid+"_message").append(extraforml+html); break;
                case 'prepend' : $("#"+divid+"_message").prepend(extraforml+html); break;
                default : $("#"+divid+"_message").html(extraforml+html); break;
            }
        }).catch( err => console.log(err) );
          
    }

kann später so aufgerufen werden

stubajax('id','...php',{'somevar1':'hello'});

// (wenn bei jedem Thema im Leuchtturm 100 % erreicht sind, wird eine Feuerwerksanimation hinzugefügt)

Bildbeschreibung hier eingeben

verwandte Informationen