How to: cache in ASP.NET utilizzando Visual Basic .NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 811431 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene descritto modi per controllare come ASP.NET memorizza nella cache le pagine Web e oggetti dati. La memorizzazione nella cache, è possibile evitare ricreare informazioni quando si effettuano le richieste successive. La memorizzazione nella cache è una tecnica importante per la creazione ad alte prestazioni e le applicazioni server scalabili. Nella prima richiesta per la pagina, è possibile memorizzare oggetti dati, pagine o parti della pagina nella memoria. È possibile memorizzare tali elementi sul server Web, il server proxy o nel browser.

Informazioni

ASP.NET fornisce metodi utili per controllare la memorizzazione nella cache. È possibile utilizzare la direttiva @ OutputCache per controllare la memorizzazione nella cache in ASP.NET dell'output della pagina. Utilizzare classe HttpCachePolicy per memorizzare oggetti arbitrari, ad esempio DataSet, per la memoria del server. È possibile archiviare la cache in applicazioni quali browser client, il server proxy e Microsoft Internet Information Services (IIS). Utilizzando l'intestazione HTTP Cache-Control, è possibile controllare la memorizzazione nella cache.

Per ulteriori informazioni sulla cache di output ASP.NET, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
308516Come output di pagina del controllo caching in ASP.NET utilizzando Visual Basic .NET

Pagine di cache ASP.NET

È possibile memorizzare nella cache utilizzando la direttiva @ OutputCache oppure a livello di programmazione tramite il codice utilizzando Visual Basic .NET o Visual C#. NET. La direttiva @ OutputCache contiene un attributo di percorso . Questo attributo determina la posizione per l'elemento memorizzato nella cache. È possibile specificare una delle seguenti posizioni:
  • qualsiasi - si memorizza la cache di output nel browser del client, il server proxy (o qualsiasi altro server) che fa parte nella richiesta o sul server in cui viene elaborata la richiesta. Per impostazione predefinita, qualsiasi è selezionata.
  • client - questo memorizza cache di output nel browser del client.
  • downstream , si memorizza la cache di output in tutte periferiche con supporto cache (diverso dal server di origine) che fanno parte della richiesta.
  • server - si archivia la cache di output sul server Web.
  • Nessuno - questo consente di disattivare la cache di output.

Di seguito sono esempi di codice per la direttiva @ OutputCache e il codice a livello di codice equivalente.
  • per archiviare la cache di output per una durata specificata

    Approccio dichiarativo:
    <%@ OutputCache Duration="60" VaryByParam="None" %>

    Approccio a livello di codice:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
  • per archiviare la cache di output nel browser client in cui ha avuto origine la richiesta

    Approccio dichiarativo:
    <%@ OutputCache Duration="60" Location="Client" VaryByParam="None" %>

    Approccio a livello di codice:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Private)
    
  • per archiviare la cache di output su dispositivi compatibili con cache HTTP 1.1 inclusi i server proxy e il client che ha effettuato richiesta

    Approccio dichiarativo:
    <%@ OutputCache Duration="60" Location="Downstream" VaryByParam="None" %>

    Approccio a livello di codice:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.SetNoServerCaching()
  • per archiviare la cache di output sul server Web

    Approccio dichiarativo:
    <%@ OutputCache Duration="60" Location="Server" VaryByParam="None" %>

    Approccio a livello di codice:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Server)
    
  • per memorizzare nella cache l'output per ogni richiesta HTTP che arriva con una città diversa

    Approccio dichiarativo:
    <%@ OutputCache duration="60" varybyparam="City" %>
    

    Approccio a livello di codice:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.VaryByParams("City") = true
    
    Per l'attributo VaryByCustom , dell'attributo VaryByHeader e l'attributo VaryByParam nella direttiva @ OutputCache , la classe di HttpCachePolicy fornisce la proprietà VaryByHeaders e la proprietà VaryByParams e il metodo SetVaryByCustom .

Disattivazione di client e proxy nella cache

Per disattivare la cache di output per una pagina Web ASP.NET nella posizione client e la posizione di proxy, il valore di attributo di percorso impostato su Nessuno e quindi impostare il valore di VaryByParam su Nessuno nella direttiva @ OutputCache . Utilizzare esempi di codice riportato di seguito per disattivare il client e la memorizzazione nella cache del proxy.
  • Approccio dichiarativo:
    <%@ OutputCache Location="None" VaryByParam="None" %>
  • Approccio a livello di programmazione:
    Response.Cache.SetCacheability(HttpCacheability.NoCache)

Memorizzare nella cache oggetti nella memoria del server

ASP.NET include un meccanismo di memorizzazione nella cache potente e di facile utilizzo che consente di memorizzare gli oggetti che richiedono molte risorse del server per creare in memoria. La classe cache implementa questo metodo. Le istanze sono private per ogni applicazione e la durata è correlata all'applicazione corrispondente. Per memorizzare nella cache gli oggetti arbitrari in ASP.NET utilizzando la classe cache , attenersi alla seguente procedura:
  1. Creare una nuova applicazione Web ASP.NET utilizzando clic su Visual Basic .NET.
  2. Per impostazione predefinita, viene creato WebForm1.aspx .
  3. Nella visualizzazione HTML di WebForm1.aspx , sostituire il codice esistente con il codice di esempio riportato di seguito:
    <%@ Import Namespace="System.Data.SqlClient" %>
    <%@ Import Namespace="System.Data" %>
    <HTML>
    	<script language="vb" runat="server">
    
    		Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    			Dim Source As DataView
    
    		'Retrieve the DataView object from the Cache class. If it does not exist, add the DataView object to the Cache class.
    
    		Source = CType(Cache("MyDataSet"), DataView)
    
    		If Source Is Nothing Then
    
    			Dim myConnection As SqlConnection = New SqlConnection("Server=ServerName; database=Pubs; user id=UID; password=PWD;")
    			Dim myCommand As SqlDataAdapter = New SqlDataAdapter("select * from Authors", myConnection)
    			Dim ds As DataSet = New DataSet()
    			myCommand.Fill(ds, "Authors")
    
    			Source = New DataView(ds.Tables("Authors"))
    			Cache("MyDataSet") = Source
    			CacheMsg.Text = "Dataset created explicitly"
    			
    		Else
    			
    			CacheMsg.Text = "Dataset retrieved from cache"
    
    		End If
    
    		' Bind the DataView object to DataGrid. 
    		MyDataGrid.DataSource = Source
    		MyDataGrid.DataBind()
    
    		End Sub
    
    	</script>
    	<body>
    		<form method="GET" runat="server" ID="Form1">
    	      <h3><font face="Verdana">Caching Data</font></h3>
    			<ASP:DataGrid id="MyDataGrid" runat="server"
    			Width="700"
    			BackColor="#ccccff"
    			BorderColor="black"
    			ShowFooter="false"
    			CellPadding=3
    			CellSpacing="0"
    			Font-Name="Verdana"
    			Font-Size="8pt"
    			HeaderStyle-BackColor="#aaaad" />
    			<p>
    			<i><asp:label id="CacheMsg" runat="server"/></i>
    	    </form>
    		</P>
    	</body>
    </HTML>
    Nota sostituire i valori per ServerName, UID e PWD nel codice di esempio per l'oggetto SqlConnection con il nome di SQL Server, ID utente e password.
  4. Dal menu debug , scegliere Avvia per eseguire l'applicazione.

    Nota Quando si riavvia l'applicazione, l'oggetto cache viene ricreato.

Riferimenti

Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
234067How To Prevent Caching in Internet Explorer
247404Come modificare l'intestazione HTTP Cache-Control quando si utilizza IIS
311006Come impedire la memorizzazione nella cache Web in Windows 2000
247389IIS: Disattiva caching di tipi MIME specifici come
313561Come impostare intestazioni HTTP per scadenza del contenuto in IIS


Per ulteriori informazioni, visitare il sito di Web di Microsoft:
http://msdn2.microsoft.com/en-us/library/xsbfdd8c(vs.71).aspx


Proprietà

Identificativo articolo: 811431 - Ultima modifica: giovedì 31 maggio 2007 - Revisione: 3.6
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Chiavi: 
kbmt kbhowtomaster kbdatabinding kbcaching kbwebforms kbinfo KB811431 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 811431
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com