Heim  >  Artikel  >  Backend-Entwicklung  >  Offizieller Yii Framework-Leitfaden, Serie 32 – Caching: Dynamischer Inhalt

Offizieller Yii Framework-Leitfaden, Serie 32 – Caching: Dynamischer Inhalt

黄舟
黄舟Original
2017-02-15 09:22:041153Durchsuche



Bei der Verwendung von Fragment-Caching oder Seiten-Caching kommt es häufig vor, dass die Ausgabe des gesamten Teils bis auf einige wenige Stellen statisch ist. Beispielsweise werden auf einer Hilfeseite möglicherweise statische Hilfeinformationen angezeigt, der angezeigte Benutzername ist jedoch der des aktuellen Benutzers.

Um dieses Problem zu lösen, könnten wir den zwischengespeicherten Inhalt anhand des Benutzernamens abgleichen. Dies wäre jedoch eine enorme Verschwendung unseres kostbaren Speicherplatzes, da der größte Teil des zwischengespeicherten Inhalts bis auf den Benutzernamen derselbe ist. Wir können die Webseite auch in mehrere Fragmente zerlegen und sie separat zwischenspeichern, aber diese Situation macht die Seite und den Code sehr kompliziert. Ein besserer Ansatz besteht darin, die von [CController] bereitgestellte Funktion für dynamische Inhalte zu verwenden. Dynamischer Inhalt bedeutet, dass die Fragmentausgabe nicht zwischengespeichert wird, selbst wenn sie im Fragment-Cache enthalten ist. Auch wenn der enthaltene Inhalt aus dem Cache abgerufen wird, muss der dynamische Inhalt jedes Mal neu generiert werden, damit er jederzeit dynamisch ist. Aus diesem Grund benötigen wir die Generierung dynamischer Inhalte durch eine Methode oder Funktion.

Rufen Sie CController::renderDynamic() auf, um dynamische Inhalte an der gewünschten Stelle einzufügen.


...别的HTML内容...
<?php if($this->beginCache($id)) { ?>
...被缓存的片段内容...
    <?php $this->renderDynamic($callback); ?>
...被缓存的片段内容...
<?php $this->endCache(); } ?>
...别的HTML内容...

Oben bezieht sich

auf einen gültigen PHP-Rückruf. Dabei kann es sich um einen String-Namen handeln, der auf eine Methode der aktuellen Controller-Klasse oder eine globale Funktion verweist. Es kann auch ein Array-Name sein, der auf eine Methode einer Klasse verweist. Alle anderen Parameter werden an die renderDynamic()-Methode übergeben. Der Rückruf gibt dynamischen Inhalt zurück, anstatt ihn nur anzuzeigen.

$callback


Das Obige ist der Inhalt des offiziellen Yii Framework-Leitfadens Serie 32 – Caching: Dynamischer Inhalt. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php .cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn