Was ist der Unterschied zwischen HttpContext.Current.Cache
und ApplicationContext.ApplicationCache.RuntimeCache
in Umbraco?
Und welche ist besser in Bezug auf Effizienz zu verwenden?
Ich habe Umbraco 7.4.x
in meinem Projekt und ASP.NET MVC
verwendet. In meinem Projekt habe ich eine Liste von Produkten, die so viele Elemente enthalten können und ich möchte den Cache aus diesem Grund verwenden.
Insbesondere möchte ich meine Daten in den Cache stellen und wenn ein neues Element zu Products
node hinzugefügt wird, wird der Cache automatisch aktualisiert.
Wie kann ich es implementieren?
Modifiziert: Bitte geben Sie mir eine Implementierung mit Details für meinen Code.
%Vor%Produkte.cshtml:
%Vor%ProductsController.cs:
%Vor%BaseRenderMvcController.cs:
%Vor%BaseRenderModel.cs:
Es gibt mehrere Caches, die Sie in Umbraco verwenden können. Sie haben Folgendes zur Verfügung:
ApplicationContext.ApplicationCache.RuntimeCache : Dies ist ein Cache, der für ALLE Anforderungen verfügbar ist.
ApplicationContext.ApplicationCache.RequestCache - Dies ist ein Cache, der NUR für die aktuelle Anforderung gültig ist. Verwenden Sie, wenn Sie ein Objekt für die Verwendung in verschiedenen Ansichten zwischenspeichern möchten.
ApplicationContext.ApplicationCache.StaticCache - Dies ist ein statischer Cache und sollte nur sehr selten und mit Vorsicht verwendet werden, da eine falsche Verwendung zu Speicherproblemen führen kann.
Wenn die Objekte, die Sie zwischenspeichern, aktualisiert werden müssen, wenn ein Knoten im Backoffice geändert wird, müssen Sie einen ICacheRefresher schreiben, um damit umzugehen.
Hier finden Sie Informationen zu den drei Caches und wie Sie Objekte in den Cache bekommen: Ссылка
Es gibt hier ein Beispiel für einen ICacheRefresher: Ссылка
Tags und Links asp.net-mvc performance caching umbraco umbraco7