Cache optimieren für einzelne Elemente auf einer TYPO3-Webseite
Mit der stdWrap Funktion cache können die einzelnen Objekte der Webseite einzeln im Cachingframework abgespeichert werden.

  • Content is read from cache directly after the stdWrapPreProcess hook and before "setContentToCurrent". If there is a cache entry for the given cache key, stdWrap processing will stop and the cached content will be returned. If no cache content is found for this key, the stdWrap processing continues as usual.
  • Writing to cache happens at the end of rendering, directly before the stdWrapPostProcess hook is called and before the "debug*" functions. The rendered content will be stored in the cache, if cache.key was set. The configuration options cache.tags and cache.lifetime allow to control the caching.

Je nach gewähltem Key kann der Cache auf auf allen Seiten und in allen Sprachen gleich sein oder auf Seiten-IDs, Sprachen, u.s.w. reagieren.

Wenn die lifetime auf „unlimited” steht, dann wird der Cache-Eintrag nur über die Tags bzw. ID oder beim globalen Cache leeren gelöscht.

Beispiel 1: Ein gecachter Bereich, der immer den gleichen Inhalt hat.

page.5 = TEXT
page.5.stdWrap {
    data = date: U
    # %H:%M:%S
    strftime = %T
    cache {
        key = myKey
        tags = tag_a,tag_b,tag_c
        # "x" Sec, "unlimited" or "default" (set with config.cache_period = x)
        lifetime = 3600
    }
}

Beispiel 2: Hauptnavigation, die nur einmal am Tag pro Sprache gerendert wird

page.5 = TEXT
page.5.stdWrap {
    data = date: U
    strftime = %T
    cache {
        key = MainNavigation_{TSFE:sys_language_uid}
        key.insertData = 1
        tags = navigation, all
        lifetime = 86400
    }
}

(Hier müsste zum Vervollständigen nur das cObject HMENU anstatt TEXT verwendet werden. Das Beispiel soll nur den Snippet für die Cache-Konfiguration zeigen.

Tip: Über JavaScript könnte dann auch der Active-Zustand für die aktuelle Seite hinzugefügt werden, ohne dass Last auf dem Webserver entsteht.