[Frage] MenuProcessor sehr langsam bei 5 Leveln TYPO3-Version: 9.5.11

  • marion-j marion-j
    Jedi-Ritter
    0 x
    131 Beiträge
    2 Hilfreiche Beiträge
    12. 12. 2019, 10:00

    Hallo,

    ich habe eine Navigation mit dem MenuProcessor gebaut, bei der 5 Level ausgegeben werden sollen:
    [code]dataProcessing {
    10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
    10 {
    levels = 5
    includeSpacer = 1
    as = mainnavigation
    }
    }
    [/code]

    Das Rendern dauert aber bis zu 8 Sekunden bei ca. 270 Seiten die ins Menu aufgenommen werden müssen. Unsere Haupt-Webseite hat aber über 2.000 Seiten. Das wird dann wohl unbrauchbar. Hat jemand eine Idee, wie man das Menu-Rendering schneller bekommt.
    Es wird zwar gecached und ist dann schneller, aber unsere Redaktuere leeren öfter den Frontendcache und dann dauert der Seitenaufbau wieder extrem lange.


  • 1
  • 0 x
    3196 Beiträge
    151 Hilfreiche Beiträge
    13. 12. 2019, 09:56

    Hallo Marion.

    Hinter dem MenuProcessor hängt letztlich auch nur das HMENU aus TypoScript - und damit sind die Performance-Probleme dieselben. Das Hauptproblem ist, dass Menüs *pro Seite* gecacht werden, weil die "active"-/"current"-Zustände von der aktuellen Seite abhängen.

    Wenn man etwas länger drüber nachdenkt und die Menüpunkte sich im Menü günstig verteilen (also die Äste ähnlich umfangreich sind), dann kann man selbst Teile des Menüs cachen. Denn alle inaktiven Äste bleiben ja gleich.

    Hatte mich selbst mal mit umfangreicheren Menüs befassen müssen und eine Lösung via TypoScript und Caching gebaut: https://stichwort.org/typo3/typoscript/mega-menue-mit-cache-optimieren/
    Philipp hat ein "Fully cached menu with TypoScript" gebaut, dass ein klein wenig anders ansetzt: https://gist.github.com/pgampe/cb29bc0fc1111d1370cc

    Einen ganz anderen Ansatz hatte ich mal von in2code gehört: die haben bei sehr umfangreichem Menü irgendwann auf Ajax zurückgegriffen und tiefere Menüebenen erst bei Bedarf nachgeladen.

    Viele Grüße
    Julian

  • 1