Support » Allgemeine Fragen » Langsames laden für angemeldete User

  • Hallo,

    Ich habe das Problem, dass die Seite gute Ladezustand hat für die Größe und den zu ladenden Content.

    Sobald ein User sich einloggt, erhöht sich diese Ladezeit sehr.

    Gibt es einen Grund in der Userabfrage, die für diesen unschönen Zustand verantwortlich wäre.

    Verwendet wird ein classifields Theme für die „Börse“. Deshalb auch der große content.
    Für die User wird eine w3phpbb2wp Datenbank Bridge verwendet, damit alle User Forum und WP mit selben Daten nutzen können.

    Gruß

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 12 Antworten - 1 bis 12 (von insgesamt 12)
  • Mein erster Gedanke:

    Du benutzt ein Caching Plugin und wenn der User sich anmeldet, dann bekommt er eben keine gecachten Inhalte ausgeliefert.

    Vielleicht liegt das auch am Session Handling auf deinem Server?

    Thread-Starter tito0815

    (@tito0815)

    Hallo,

    und danke für deine Gedanken.
    Leider ist dem nicht so. Durch den dynamischen Content, können wir kein Cachingtool verwenden, da sonst neue Angebote nicht geladen werden.
    Sprich die Seite wird 0 gecached.

    Mal zur Info WordPress aktuelle Version (heute morgen)
    PHP 7.2xx -> dies können ir derzeit leider nicht erhöhen, da das WordPress CMS mit dem phpbb Forum CMS gebridged ist, um den Usern 1 Registrierung zu ersparen. Und phpbb ist für 7.3 nochnicht ausgereift.

    Die Bridge wurde auch probeweise abgeschaltet und es war keine Besserung zu erkennen.

    Der Server ist futschneu und ein MX120 von Hetzner mit eigentlich zuviel Power.

    Da hilft nur:

    PHP log auswerten, ob dort Fehler und verbundene Schleifen generiert werden. Gerade für eingeloggte User.

    Server log auswerten.

    Da ich nicht genau weiß, wie die Bridge funktioniert, könntest du in WP den Query Monitor mal installieren und Bremsen ausfindig machen.

    Thread-Starter tito0815

    (@tito0815)

    Warnung	count(): Parameter must be an array or an object that implements Countable	3	
    
        wp-content/themes/dolceclassifieds/header.php:559
        show_cats_dropdown()
        wp-content/themes/dolceclassifieds/header.php:579
        load_template('wp-content/themes/dolceclassifieds/header.php')
        wp-includes/template.php:676
        locate_template()
        wp-includes/general-template.php:48
        get_header()
        wp-content/themes/dolceclassifieds/taxonomy.php:57
    
    	Theme
    Warnung	in_array() expects parameter 2 to be array, boolean given	2	
    
        wp-content/themes/dolceclassifieds/header.php:565
        in_array()
        wp-content/themes/dolceclassifieds/header.php:565
        show_cats_dropdown()
        wp-content/themes/dolceclassifieds/header.php:579
        load_template('wp-content/themes/dolceclassifieds/header.php')
        wp-includes/template.php:676
        locate_template()
        wp-includes/general-template.php:48
        get_header()
        wp-content/themes/dolceclassifieds/taxonomy.php:57
    
    	Theme
    Warnung	count(): Parameter must be an array or an object that implements Countable	10	
    
        wp-content/themes/dolceclassifieds/header.php:571
        show_cats_dropdown()
        wp-content/themes/dolceclassifieds/header.php:572
        show_cats_dropdown()
        wp-content/themes/dolceclassifieds/header.php:579
        load_template('wp-content/themes/dolceclassifieds/header.php')
        wp-includes/template.php:676
        locate_template()
        wp-includes/general-template.php:48
        get_header()
        wp-content/themes/dolceclassifieds/taxonomy.php:57
    
    	Theme
    Warnung	count(): Parameter must be an array or an object that implements Countable	1	
    
        wp-content/themes/dolceclassifieds/header.php:590
        load_template('wp-content/themes/dolceclassifieds/header.php')
        wp-includes/template.php:676
        locate_template()
        wp-includes/general-template.php:48
        get_header()
        wp-content/themes/dolceclassifieds/taxonomy.php:57
    
    	Theme
    Warnung	count(): Parameter must be an array or an object that implements Countable	1	
    
        wp-content/themes/dolceclassifieds/taxonomy.php:303
        wp-content/themes/dolceclassifieds/page-all-ads.php
        wp-content/themes/dolceclassifieds/page-all-ads.php:6
    
    	Theme
    Warnung	count(): Parameter must be an array or an object that implements Countable	1	
    
        wp-content/themes/dolceclassifieds/sidebar.php:520
        load_template('wp-content/themes/dolceclassifieds/sidebar.php')
        wp-includes/template.php:676
        locate_template()
        wp-includes/general-template.php:136
        get_sidebar()
        wp-content/themes/dolceclassifieds/footer.php:12
        load_template('wp-content/themes/dolceclassifieds/footer.php')
        wp-includes/template.php:676
        locate_template()
        wp-includes/general-template.php:92
        get_footer()
        wp-content/themes/dolceclassifieds/taxonomy.php:386

    Hier das Codeschnippsel aus der header.php

    kann es an dem „count“ liegen?

    //foreach $all_cats as $cat
    
    								function show_cats_dropdown($all_cats, $main_cats) {
    									$auto_class_cats = get_option('auto_class_cats');
    									$auto_class_cats = count($auto_class_cats) > 0 ? $auto_class_cats : array();
    									foreach ($main_cats as $key => $cat) {
    										$selected = ($_GET['c'] == $category_id) ? " selected" : "";
    										echo '<div data-value="'.$cat->term_id.'" class="option'.$selected.'" data-cat-parent="'.$cat->category_parent.'"><span class="icon icon-level-down"></span> '.$cat->name.'</div>';
    
    										foreach($all_cats as $key => $subcat) {
    											if($subcat->category_parent == $cat->term_id && !in_array($subcat->category_parent, $auto_class_cats)) {
    												$sub_cats[] = $subcat;
    												unset($all_cats[$key]);
    											}
    										}//foreach $c as $cat
    										echo '<div class="sub-cat" data-subcats-for-cat="'.$cat->term_id.'">';
    											if(count($sub_cats) > 0) {
    												show_cats_dropdown($all_cats, $sub_cats);
    												unset($sub_cats);
    											}
    										echo '</div>';
    									}
    								}
    
    
    • Diese Antwort wurde geändert vor 3 Jahren, 2 Monaten von tito0815.

    Das ist ehrlich gesagt – reines Rätselraten ab jetzt für Aussenstehende.
    Zeigt der Query Monitor dir bestimmte Bremsen an?

    Thread-Starter tito0815

    (@tito0815)

    Nein der query monitor zeigt keine Bremsen an. Ein paar „Fehler“ was aber mit älteren Code zusammenhängt.

    Das Problem hatten wir aber schon seit einiger Zeit.

    Als angemeldeter User benötigt die Seite genau 5 sek. Sonst unter 1 sek.
    Es liegt nicht am content (Bilder etc) der geladen wird, sondern irgendwie an der Anmeldung an sich.

    Logge ich mich aus lädt alles extrem schnell. Sobald ich mich wieder einlogge ist da dieser 5 sek delay.

    Hast du dir das schonmal im Network Tab von Chrome angesehen?

    Mal vergleichen mit eingeloggt und uneingeloggt.

    Nein der query monitor zeigt keine Bremsen an. Ein paar „Fehler“ was aber mit älteren Code zusammenhängt.
    – Genau da könnte das Problem liegen, wenn da Schleifen drin sind, die nicht richtig aufgelöst werden.

    Was steht im Query Monitor unter Querys? Sind langsame dabei?
    Du kannst das mit einem Cookie übrigens im Frontend messen, auch ohne eingeloggt zu sein.

    Thread-Starter tito0815

    (@tito0815)

    Also Network Tab sagt:

    als Gast: 1,34 sek TTFB
    als User: 8,3 sek TTFB

    sonst alles tutti

    Query Moitor zeigt unter Query nur die Postmeta mit der Funktion Getpost als „langsam“ an mit 0,3 sek. Dies halt 20 mal.

    Ort ist im Template query und loop items.

    derzeit ~ 500.000 postmeta Datenbankeinträge

    die PHP Fehler werden durch eine „count“ Funktion erzeugt gem. Query Monitor

    TTFB ist „noch“ im Rahmen aber dennoch langsam.
    Macht der Server das auch noch mit? Vielleicht ist der ausgelastet?
    WP lastet den Server eh von haus aus etwas aus.

    Query Moitor zeigt unter Query nur die Postmeta mit der Funktion Getpost als „langsam“ an mit 0,3 sek. Dies halt 20 mal.

    Wenn du jetzt 0,3 sek mal 20 nimmst, dann kommst du ungefähr auf 5-6 Sekunden.

    DB Sicherung machen.

    Dann ungenutzte Post Metas löschen. Per Tool oder per aufwendigen sql Query.
    DB einmal optimieren.

    Ansonsten direkt die langsamen Queries anschauen, ob die noch optimiert werden können.

    PS: Keine Gewähr, da Fernwartung. 😉

    Thread-Starter tito0815

    (@tito0815)

    Hallo,

    sry für die späte Rückmeldung.

    Leider löst das ja nicht das Problem.

    Es muss am Status „eingeloggt“ liegen.

    Als Gast lädt der gleiche (nicht selbe, denn gesperrt oder private Anzeigen werden Gästen ja nicht angezeigt) content. Sprich die Menge der Daten sind identisch.

    20 Anzeigen auf der Übersichtseite, sind 20 Anzeigen.

    Die Seite lädt auch nicht.

    Zur Erklärung. ich habe mal eine Preloader installiert, der einen drehenden Kreis anzeigt während des ladens.

    Als Gast -> unter 1 sek Preloader bämmm content ist da
    Als User -> ~ 5 sek nichts, dann unter 1 sek Preloader und bämmm

    Die Vermutung liegt halt nahe, dass es an dem Status „eingeloggter“ User an sich liegen muss.

    Btw. PHP wurde auf 7.4 angehoben.

    Kann es an den Settings des Servers liegen? irgendein timeout bzw session handling für User (da ja WordPress grundsätzlich kein PHP session erzeugen sollte)

    Cheers

    if user logged in ist letzendlich nur eine Zeile code mit if abschluss 2 zeilen code.

    das sollte fix gehen und nicht zu merken sein.

    ich hab dich mal angemeldet. läuft flüssig.

    welche seiten haben diese langsamen ladezeiten? ich konnte keine finden …

    Thread-Starter tito0815

    (@tito0815)

    Wenn man jetzt von boerse.pbhub.de auf den Links „Anzeigenübersicht“ klickt. Erst dann wird die Übersicht der Anzeigen geladen. Die Startseite haben wir generiert damit die User direkt ein Feedback haben, dass die Seite lebt.

Ansicht von 12 Antworten - 1 bis 12 (von insgesamt 12)
  • Das Thema „Langsames laden für angemeldete User“ ist für neue Antworten geschlossen.