JAK: Zlepšení výkonu pomocí ukládání stránek technologie ASP.NET do mezipaměti

Souhrn

Tento článek ukazuje, jak zvýšit výkon aplikací technologie ASP.NET do mezipaměti celé stránky technologie ASP.NET pomocí direktivy @ OutputCache stránky. Je také možné direktivy @ OutputCache stránky do mezipaměti určité části stránky technologie ASP.NET, když tento článek neuvádí tuto implementaci.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a aktualizace service Pack, které potřebujete:

  • Microsoft Visual Studio .NET
  • Microsoft Internet Information Server (IIS) 4.0 nebo Internetová informační služba (IIS) 5.0
Tento článek předpokládá, že jste obeznámeni s následující témata:
  • Webové aplikace
  • Technologie Microsoft ASP.NET.

Popis techniky

Při můžete ukládat do mezipaměti informace, umístěte tyto informace do paměti. Normálně když služba IIS přijme požadavek na stránku, IIS přečte stránky z pevného disku a potom odešle stránku. V některých případech služba IIS automaticky informace můžete ukládat v paměti pro zvýšení výkonu. Direktiva @ OutputCache umožňuje držení stránky v paměti, i když tuto stránku nevejdou kritéria, které služba IIS používá k určení, jaké informace je uložena v paměti.

Například stránky, které přístup k databázi jsou spuštěny znovu pokaždé, když přejdete na stránku, chcete-li získat nejnovější data. Při použití direktivy @ OutputCache stránky je udržována v paměti s výsledky dotazu do databáze dokud nevyprší určený čas. Proto aby se zabránilo dotazování databáze pokaždé, když uživatel přejde na stránku můžete direktivy @ OutputCache . To je velmi užitečná pro data, která se nemění příliš často.

Vytvoření webové aplikace technologie ASP.NET, která používá @ OutputCache

V této části vytvoříte webovou aplikaci ASP.NET používající direktivy @ OutputCache stránky ukládání do mezipaměti pro určité časové období.

  1. Takto vytvořit nové ASP.NET webové aplikace v jazyce Visual Basic .NET:
    1. Otevřete aplikaci Visual Studio .NET.
    2. V nabídce soubor přejděte na příkaz Nový a klepněte na příkaz projekt.
    3. V dialogovém okně Nový projekt klepněte na tlačítko Projekty jazyka Visual Basic v části Typy projektua klepněte na Webovou aplikaci ASP.NET v části šablony.
  2. Přepněte do zobrazení HTML v WebForm1.aspx okno a ihned po direktivě @ Page přidejte následující direktivu:
    <%@ OutputCache Duration="10" VaryByParam="none" %>
    Tento kód nastaví atribut direktivy @ OutputCache trvání na 10 sekund, aby se obsah stránky jsou uloženy v mezipaměti po dobu 10 sekund. Kromě toho atribut VaryByParam obsahuje seznam oddělený středníky obsahující řetězce, které slouží k odlišení výstupní mezipaměti na základě proměnných, které definuje uživatel. Tato funkce je nad rámec tohoto článku, takže předchozí kód VaryByParam nastaví na žádný.
  3. V zobrazení HTML WebForm1.aspx přidejte následující kód mezi otevírací a zavírací < form > značku, chcete-li přidat ovládací prvek Popisek do formuláře:
    <asp:Label>Last cached: <%Response.Write(Now())%>
    </asp:Label>

    Tento popisek slouží k zobrazení posledního načtení stránky. Hodnota v tomto štítku měli měnit pouze jednou každých 10 sekund, bez ohledu na to kolikrát je stránka aktualizována.
  4. V nabídce soubor klepněte na tlačítko Uložit.
  5. V nabídce sestavení klepněte na tlačítko Sestavit řešení.
  6. Klepněte pravým tlačítkem myši na stránku a potom klepněte na tlačítko Zobrazit v prohlížeči. Všimněte si, že se objeví popisek, který zobrazuje aktuální čas.
  7. Aktualizujte stránku několikrát. Všimněte si, že popisek změní pouze po dobu 10 sekund.

Úplný výpis kódu

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1"%><%@ OutputCache Duration="10" VaryByParam="none" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Label>
Last Cached: <%Response.Write(Now())%>
</asp:Label>
</form>
</body>
</html>

Poznámka: je třeba změnit atribut Inherits v následujícím řádku kódu podle potřeby odkazovat na název projektu a webový formulář:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1"%>
Kód nyní předpokládá, že je projekt s názvem WebApplication1 a že je webový formulář s názvem formulář WebForm1.

Ověřte, zda funguje

  1. Otevřete více oken prohlížeče.
  2. V každém okně přejděte na stránku ASPX, jako by byl koncový uživatel. Všimněte si, že všechna okna zobrazit současně po dobu 10 sekund, i když jste nepřešli na stránku současně.
  3. Po 10 sekundách vyhledejte nebo aktualizovat stránku ASPX. Všimněte si, že všechna okna aktualizovat čas.



Odkazy

Další informace naleznete na následujících webech společnosti Microsoft:

Vlastnosti

ID článku: 315896 - Poslední kontrola: 20. 1. 2017 - Revize: 2

Váš názor