Procedura: Migliorare le prestazioni memorizzando nella cache di pagine ASP.NET

Riepilogo

In questo articolo viene illustrato come migliorare le prestazioni delle applicazioni ASP.NET per la memorizzazione nella cache pagine intere di ASP.NET con la direttiva di pagina @ OutputCache . È inoltre possibile la direttiva di pagina @ OutputCache per memorizzare nella cache di parti specifiche di una pagina ASP.NET, anche se in questo articolo non illustrare questa implementazione.

Requisiti

Nell'elenco seguente sono indicati l'hardware consigliato, il software, l'infrastruttura di rete e i service pack necessari:

  • Microsoft Visual Studio .NET
  • Microsoft Internet Information Server (IIS) 4.0 o Microsoft Internet Information Services (IIS) 5.0
In questo articolo si presuppone che si abbia familiarità con i seguenti argomenti:
  • Applicazioni Web
  • Microsoft ASP.NET

Descrizione della tecnica

Quando si memorizza nella cache di informazioni, inserire le informazioni nella memoria. In genere, quando IIS riceve una richiesta per una pagina, IIS legge la pagina dal disco rigido e quindi invia la pagina. In alcuni casi, IIS può automaticamente memorizzare informazioni in memoria per migliorare le prestazioni. La direttiva @ OutputCache consente di inserire una pagina in memoria, anche se tale pagina non soddisfano i criteri che IIS utilizza per determinare quali informazioni vengono mantenuti in memoria.

Ad esempio, le pagine di accesso a un database vengono eseguite nuovamente ogni volta che accedete alla pagina per ottenere i dati più recenti. Quando si utilizza la direttiva @ OutputCache, la pagina viene conservata in memoria con i risultati di una query al database fino alla scadenza del periodo di tempo specificato. Pertanto, è possibile utilizzare la direttiva @ OutputCache per evitare l'interrogazione del database ogni volta che un utente accede alla pagina. Ciò è molto utile per i dati che non vengono modificati spesso.

Creare un'applicazione Web ASP.NET che utilizza una direttiva @ OutputCache

In questa sezione, si crea un'applicazione Web ASP.NET che utilizza la direttiva di pagina @ OutputCache nella cache per un periodo di tempo.

  1. Attenersi alla procedura seguente per creare una nuova applicazione Web ASP.NET in Visual Basic .NET:
    1. Aprire Visual Studio .NET.
    2. Dal menu File , scegliere Nuovo, quindi progetto.
    3. Nella finestra di dialogo Nuovo progetto scegliere Progetti di Visual Basic in Tipi progettoe quindi fare clic su Applicazione Web ASP.NET in modelli.
  2. Passare alla visualizzazione HTML nella finestra WebForm1. aspx e quindi aggiungere la seguente direttiva immediatamente dopo la direttiva @ Page :
    <%@ OutputCache Duration="10" VaryByParam="none" %>
    Questo codice imposta l'attributo di durata della direttiva @ OutputCache per 10 secondi, in modo che il contenuto della pagina vengono memorizzate nella cache per 10 secondi. Inoltre, l'attributo VaryByParam è costituito da un elenco separato da punto e virgola di stringhe che è possibile utilizzare per variare la cache di output in base alle variabili definiti dall'utente. Questa funzionalità è esula dall'ambito del presente articolo, in modo che il codice precedente imposta VaryByParam su Nessuno.
  3. Nella visualizzazione HTML di WebForm1. aspx, aggiungere il seguente codice tra i tag di apertura e chiusura < form > per aggiungere un controllo Label al form:
    <asp:Label>Last cached: <%Response.Write(Now())%>
    </asp:Label>

    Utilizzare questa etichetta per visualizzare l'ultima volta che la pagina è stata caricata. Il valore di questa etichetta deve modificare solo una volta ogni 10 secondi, indipendentemente dalle quante volte la pagina viene aggiornata.
  4. Dal menu File, fare clic su Salva.
  5. Scegliere Genera soluzione dal menu Compila .
  6. Destro della pagina e quindi fare clic su Visualizza nel Browser. Si noti che viene visualizzata un'etichetta, che consente di visualizzare l'ora corrente.
  7. Aggiornare la pagina più volte. Si noti che l'etichetta cambia solo dopo il periodo di tempo di 10 secondi.

Elenco completo del codice

<%@ 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>

Nota: potrebbe essere necessario modificare l'attributo Inherits nella seguente riga di codice necessarie per fare riferimento al nome del progetto e Web Form:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1"%>
Attualmente, nel codice si presuppone che il progetto è denominato WebApplication1 e di Web Form denominato WebForm1.

Verificare che funzioni

  1. Aprire più finestre del browser.
  2. In ogni finestra, passare alla pagina aspx come se trattasse di un utente finale. Si noti che tutte le finestre visualizzati nello stesso momento per la durata di 10 secondi, anche se non è passare alla pagina contemporaneamente.
  3. Dopo 10 secondi, individuare o aggiornare la pagina aspx. Si noti che tutte le finestre di aggiornare l'ora.



Riferimenti

Per ulteriori informazioni, vedere i seguenti siti Web Microsoft:

Proprietà

ID articolo: 315896 - Ultima revisione: 30 gen 2017 - Revisione: 1

Feedback