[Frage] Probleme mit Megamenü / expAll / Caching Framework TYPO3-Version: 6.2.7

  • Eiknarf Eiknarf
    T3PO
    0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    14. 12. 2015, 13:32

    Servus TYPO3 Gemeinde,

    Ich habe aktuell ein Problem, welches ich partout nicht in den Griff bekomme.

    Die Seite enthält ein Megamenü, ca. 200-250 Seiten verteilt über 4 Ebenen, expAll ist gesetzt. Ungecached sind es ca. 5-10s Renderzeit (je nach Server), davon entfallen 90% auf das Menü. Das gerenderte Menü ist auf allen Seiten identisch und könnte eigentlich prima (unabhängig vom Seiteninhalt) gecached werden.

    Per se kein Problem sollte man meinen, denn sobald die Seiten im Cache liegen, flutscht es ja. Aber dennoch sind 10s für ungecachte Seiten deutlich zu viel. Zumal ein paar Seiten nicht gecached werden können.

    Es gibt hier bereits eine Latte an Lösungsvorschläge:

    https://forge.typo3.org/issues/57953

    Allerdings haben die bei mir allesamt nichts gebracht. Weder Opcache, 7 LTS noch der Trick mit dem VHS viewhelper haben eine merkliche Verbesserung herbeigeführt.

    Ich habe das Menü versucht per caching framework (stdWrap.cache mit eigenem key) manuell zu cachen. Sowohl die HMENU als auch die VHS Variante. Aber auch das hat nicht geklappt. Das Menü wird immer wieder neu generiert und die Renderzeiten sind wie gehabt hoch.

    Hat jemand schon mal ein ähnliches Problem gehabt und eine zündende Idee für mich parat?

    Vielen Vielen Dank!

    Franz


  • 1
  • Eiknarf Eiknarf
    T3PO
    0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    14. 12. 2015, 20:43

    Nachdem es etwas brennt auf dem Projekt, hab ich mir für eine Quick n Dörte Lösung entschlossen.

    Falls jemand das gleiche Problem haben sollte: Plugin aufsetzen, Caching Framework einbinden, Menü im Cache ablegen, Plugin über das Template ausgeben.

    Sicherlich nicht ganz koscher, aber immerhin läuft das nun einwandfrei. Das Menü wird (bei leerem Cache) einmalig gerendert und in den Cache gelegt.

    Bei Interesse kann ich auch gerne den Code rumschicken.

    Cheers F

  • nilu1989 nilu1989
    Jar Jar Binks
    0 x
    1 Beiträge
    0 Hilfreiche Beiträge
    02. 09. 2016, 10:04

    Hi Franz,

    Ich hatte vor kurzem auch das Problem mit einem "Mega-Menü".
    Ich habe deshalb das Menü per AJAX eingebunden , die Seite lädt dadurch deutlich schneller. Das Menü selbst erst nach knapp 2 Sekunden nach.
    Falls dir oder jemand anderem das weiterhilft würde ich mich über euer Feedback freuen :)

    Gruß

    Lukas

  • spL spL
    Jedi-Meister
    0 x
    345 Beiträge
    3 Hilfreiche Beiträge
    18. 05. 2017, 15:17

    Ich habe das Menü versucht per caching framework (stdWrap.cache mit eigenem key) manuell zu cachen. Sowohl die HMENU als auch die VHS Variante. Aber auch das hat nicht geklappt. Das Menü wird immer wieder neu generiert und die Renderzeiten sind wie gehabt hoch.

    Ich stehe vor dem selben Problem. Mein Menu verursacht ca. 15.000 SQL Abfragen (!!!) für ca. 600 Unterseiten, wenn eine Seite noch nicht gecached ist.

    Um der Performance etwas entgegen zu kommen habe ich im Menü am Ende auf Aktiv- und andere Zustände verzichtet und setzte diese via JS.

    Ich war davon ausgegangen, dass das Menü mit einem individuellen cache-key ausgestattet nur einmal berechnet und auch gecached werden wird - Weil auf jeder Seite identisch. Das ist jedoch leider nicht der Fall, das Menü wird für jede Seite erneut berechnet und gecached. Die Last die dabei auf dem Server liegt zwingt dessen Datenbank mit unter komplett in die Knie.

    Ich suche daher noch nach einem Weg - Am besten ohne Ajax, die Navigation nur einmal zu berechnen und cachen.

    Bin für jeden Hinweis dankbar :)

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    3056 Beiträge
    128 Hilfreiche Beiträge
    31. 10. 2017, 00:28

    Ist zwar ein älterer Thread, aber nachdem das Thema letztens auch mich Grübeln ließ, möchte ich mein Ergebnis mit Euch teilen:
    Man kann das CachingFramework (bzw. die cache-Funktion von TypoScript) nutzen, um Menüs nicht für jede Seite neu rendern zu müssen.

    Ich habe das Ganze mal in einem Blogbeitrag zusammengefasst:
    http://stichwort.org/typo3/typoscript/mega-menue-mit-cache-optimieren/

  • 1