#ASP.NET-Snippet: Textdatei nicht ständig neu laden müssen

Die Aufgabenstellung: Es soll der Inhalt einer Textdatei in ein Literal eingebunden werden, um auf diese Art einen einfachen Newsticker zu realisieren.

Das Problem: Der Inhalt wird bei jedem Request neu geladen. Deshalb gibt es potentiell Performance-Probleme.

Die Lösung: Den ASP.NET-Cache verwenden. Hier können die Daten für einen gewissen Zeitraum zwischengespeichert werden und müssen somit nicht bei jedem Request neu geladen werden.

Die Umsetzung:

lock(GetType())
{
   // News aus dem Cache holen
   String content === Cache["news"] as String;

   // News gefunden?
   if(null == content)
   {
      // News waren nicht im Cache, also nachladen
      content = File.ReadAllText(
);

      // Unter dem Schlüssel "news" für zehn Minuten in den
      // Cache packen, danach fliegen sie automatisch wieder raus
      Cache.Insert(
         "news", content, null,
          DateTime.Now.AddMinutes(10), TimeSpan.Zero);
   }

   // News ausgeben
.Text = content;
}

Wenn es sein muss, kann zusätzlich noch eine CacheDependency verwendet werden, um das Objekt sofort aus dem Cache zu nehmen, wenn sich die Datei geändert hat.

No Comment

Comments are closed.