Ergebnis 1 bis 11 von 11

Thema: Sehr lange Ladezeit beim Nachrichtenmodul[gelößt]

  1. #1
    Contao-Urgestein
    Registriert seit
    20.09.2012.
    Ort
    Lüneburger Heide
    Beiträge
    2.107
    Partner-ID
    12207
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard Sehr lange Ladezeit beim Nachrichtenmodul[gelößt]

    Hallo Zusammen,

    ich habe etwas Schwierigkeiten mit dem Nachrichten Modul wenn ich es als Portfolio einsetze.
    Auf einer Seite mit relativ vielem Inhalt, ist die Ladezeit sehr, sehr lang und bricht teilweise auf XAMMP mit einer Fehlermeldung ab.

    Im Teaser bzw. in jedem news_ Template wird scheinbar die komplette Detailseite abgearbeitet. (echo $this->details)
    Hat man jetzt Detailseiten mit Bildern, Galerien etc. muss das alles abgearbeitet werden was bei sehr viel Inhalt, auch sehr lange dauert.

    Hat jemand einen Tipp für mich, wie man die Ladezeit verkürzen könnte ohne am Inhalt und der Filterfunktion zu sparen oder Paginationen einzusetzen?

    Hier mal ein Link zur Entwicklungsseite zum nachvollziehen.

    Über einen Tipp würde ich mich freuen.


    Gruß
    tschero
    Geändert von tschero (05.09.2015 um 07:36 Uhr)

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

    Standard

    Zitat Zitat von tschero Beitrag anzeigen
    und bricht teilweise auf XAMMP mit einer Fehlermeldung ab.
    Und welche? Aber ich schätze mal out of memory.


    Zitat Zitat von tschero Beitrag anzeigen
    Im Teaser bzw. in jedem news_ Template wird scheinbar die komplette Detailseite abgearbeitet. (echo $this->details)
    Nein, seit Contao 3.5 wird der Inhalt ($this->text) dynamisch geladen, also nur dann, wenn in einem Template auch tatsächlich darauf zugegriffen wird.

    Also ich nehme mal an hier geht es um eine Newslist? Wie sieht das Template aus, dass du in der Newslist verwendest?

  3. #3
    Contao-Urgestein
    Registriert seit
    20.09.2012.
    Ort
    Lüneburger Heide
    Beiträge
    2.107
    Partner-ID
    12207
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hi spooky,

    ja die Fehlermeldung ist ein "Out of Memory".

    Das Template Newsliste / Portfolioliste sieht wie folgt aus:
    PHP-Code:
    <div class="portfolioliste autogrid item block<?php echo $this->class?> <?php echo $GLOBALS['portfolioliste']['grid']; ?> port_overlay filter_<?php echo standardize($this->subHeadline); ?>">
        
        <div class="portfolioliste_inside">
        
            <div class="frontside">
                    <div class="image_container">
                        <a href="<?php echo $this->href $this->href $this->link?>"<?php echo $this->attributes?> title="<?php echo $this->alt?>">
                            <img src="<?php echo $this->src?><?php echo $col->imgSize?> alt="<?php echo $this->alt?>" />
                        </a>
                    </div>
                    <?php if($GLOBALS['portfolioliste']['showcaption']): ?>
                    <div class="caption">
                        <div class="title"><?php echo $this->text $this->linkHeadline $this->newsHeadline?></div>
                        <div class="subline"><?php echo $this->subHeadline?></div>
                    </div>
                    <?php endif; ?>
            </div>
            
            <div class="backside">
                <div class="backside-wrapper">
                    <div class="backside-inside">
                        <div class="back_title"><?php echo $this->text $this->linkHeadline $this->newsHeadline?></div>
                        <div class="back_divider"></div>
                        <div class="back_subline"><?php echo $this->subHeadline?></div>
                        <div class="teaser"><?php echo $this->teaser?></div>
                        <?php if ($this->text): ?>
                        <div class="port_button"><?php echo $this->more?></div>
                        <?php endif; ?>
                    </div>
                </div>
            </div>
            </div>

    </div>
    Contao Version: 3.5.0

    Gruß
    tschero

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

    Standard

    Das Problem sind deine $this->text Abfragen. Die müsstest du entfernen, damit nicht der gesamte Detailtext geladen wird.
    Geändert von Spooky (03.09.2015 um 08:36 Uhr)

  5. #5
    Contao-Urgestein
    Registriert seit
    20.09.2012.
    Ort
    Lüneburger Heide
    Beiträge
    2.107
    Partner-ID
    12207
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hi spooky,

    hab das Template jetzt wie folgt umgebaut:

    PHP-Code:
    <div class="portfolioliste autogrid item block<?php echo $this->class?> <?php echo $GLOBALS['portfolioliste']['grid']; ?> port_overlay filter_<?php echo standardize($this->subHeadline); ?>">
        
        <div class="portfolioliste_inside">
        
            <div class="frontside">
                    <div class="image_container">
                        <a href="<?php echo $this->href $this->href $this->link?>"<?php echo $this->attributes?> title="<?php echo $this->alt?>">
                            <img src="<?php echo $this->src?><?php echo $col->imgSize?> alt="<?php echo $this->alt?>" />
                        </a>
                    </div>
                    <?php if($GLOBALS['portfolioliste']['showcaption']): ?>
                    <div class="caption">
                        <div class="title"><?php echo /*$this->text ? */$this->linkHeadline $this->newsHeadline ""?></div>
                        <div class="subline"><?php echo $this->subHeadline?></div>
                    </div>
                    <?php endif; ?>
            </div>
            
            <div class="backside">
                <div class="backside-wrapper">
                    <div class="backside-inside">
                        <div class="back_title"><?php echo /*$this->text ? */$this->linkHeadline $this->newsHeadline "";  ?></div>
                        <div class="back_divider"></div>
                        <div class="back_subline"><?php echo $this->subHeadline?></div>
                        <div class="teaser"><?php echo $this->teaser?></div>
                        <div class="port_button"><?php echo $this->more?></div>
                    </div>
                </div>
            </div>
            </div>

    </div>
    Läuft deutlich schneller.

    Besten Dank für die Hilfe.

    Gruß
    tschero

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

    Standard

    Sehr schön . Im übrigen lag' ich mit meiner ursprünglichen Aussage, dass dies in Contao 3.5 kein Problem mehr ist, etwas falsch. Zwar stimmt es, dass die Performance von Newslisten in Contao 3.5 sehr viel besser ist, wenn die Variable $this->text nicht benutzt wird, allerdings wird genau diese Variable bspw. im default news_latest und news_short Template immer noch benutzt, daher bliebe der Performance-Gewinn dort auch aus: https://github.com/contao/core/issues/7993

  7. #7
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.272
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Was wäre denn hier die Abhilfe (layout_latest), bis es in 3.5.3 gefixed wird? $this->text einfach rausnehmen aus der Abfrage? Ein Teaser ist bei mir sowieso immer vorhanden. Und lohnt sich das auch, wenn ich mir immer nur die drei neuesten Nachrichten anzeigen lasse? Ich denk ich schmeiss es einfach mal raus, Nachteile gibts ja in meinem Fall wohl nicht.

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

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Was wäre denn hier die Abhilfe (layout_latest), bis es in 3.5.3 gefixed wird? $this->text einfach rausnehmen aus der Abfrage? Ein Teaser ist bei mir sowieso immer vorhanden. Und lohnt sich das auch, wenn ich mir immer nur die drei neuesten Nachrichten anzeigen lasse? Ich denk ich schmeiss es einfach mal raus, Nachteile gibts ja in meinem Fall wohl nicht.
    Bei 3 Nachrichten wird sich das wohl kaum merklich auswirken. Im Prinzip kannst du eigentlich gleich die ganze Abfrage entfernen - denn es gibt ja eigentlich nur einen Fall wo man keinen "Mehr" Link haben wolle könnte: eben wenn es keinen Detail Text gibt. Aber das lässt sich ja nur mit Performance Verlust feststellen (anstatt $this->text könnte man ja auch einfach eine Datenbankabfrage machen, ob überhaupt etwas in tl_content für diesen Newseintrag da ist - aber das würde bedeuten, dass du bei 100 Newslist Einträge auch wieder 100 zusätzliche Datenbankabfragen hast).

  9. #9
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.272
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Es werden also nicht etwa alle Nachrichten geladen, um dann die drei neuesten zu bestimmen. Ok, dann wird es sich nicht lohnen, da warte ich einfach auf 3.5.3.

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

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Es werden also nicht etwa alle Nachrichten geladen, um dann die drei neuesten zu bestimmen. Ok, dann wird es sich nicht lohnen, da warte ich einfach auf 3.5.3.
    Nein nein, keine Sorge, das Newslist Modul lädt nur die Einträge, die tatsächlich angezeigt werden.

    Ob sich was in 3.5.3 ändern wird bleibt abzuwarten, ich wüsste momentan keine Lösung wie man das alte Verhalten ansonsten weiter bestehen lassen könnte, ohne zusätzliche Datenbankabfragen.

  11. #11
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Es werden also nicht etwa alle Nachrichten geladen, um dann die drei neuesten zu bestimmen. Ok, dann wird es sich nicht lohnen, da warte ich einfach auf 3.5.3.
    Auch wenn es hier Offtopic ist: Beim Events-Modul von Contao gibt es allerdings dieses Verhalten, da die Umsetzung der Wiederholfunktion dies dort erfordert.

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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