How to: Store State nelle applicazioni di Active Server Pages

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

In questa pagina

Sommario

Quando si sviluppa un Web di ASP (Active Server Pages) Ŕ di un modo comune per personalizzare il contenuto per applicazione, possibile archiviare informazioni relative all'utente. Esistono diversi modi per memorizzare le informazioni in un ASP ambiente. In questo articolo sono elencati i metodi pi¨ comuni per memorizzare lo stato, inclusi codice di esempio e ai professionisti IT e gli svantaggi di ciascuna opzione.

Informazioni

Sessione e variabili di applicazione

Funzionamento?

Le variabili Session e Application sono memorizzate sul server. Un SessionID, che viene generato all'inizio di una sessione ASP Ŕ un cookie di in memoria Ŕ memorizzato nel client per identificare le variabili di sessione . Di conseguenza, Ŕ necessario che il client siano abilitati nel browser per le variabili Session e Application utilizzare i cookie.

Professionisti IT

  • Questo metodo Ŕ facile da implementare.
  • ╚ possibile archiviare sia i tipi di variabili semplici e gli oggetti sebbene (archiviazione di oggetti Ŕ non sia consigliato).
  • I valori memorizzati nelle variabili Session e Application sono nascosti da parte dell'utente.

Svantaggi

  • Questo metodo Ŕ necessario che siano abilitati nel browser i cookie i client.
  • Impossibile condividere questo metodo in modo affidabile tra i frame in una pagina con frame o tra pi¨ istanze di browser.
  • Questo metodo archivia le informazioni sul server Web. Questo riduce la scalabilitÓ in due modi: variabili Session e Application utilizzare risorse del server, e non possono essere utilizzate su completamente il bilanciamento del carico Web farm.

Esempio

Impostare il valore di una variabile di sessione:
<%
   'Store information in a session variable.
   Session("myInformation") = "somevalue"
%>
				
recupera il valore della variabile di sessione:
<%
    'Retrieve the information stored in the session variable.
    myValue = Session("myInformation")
%>
				

Cookie

Funzionamento?

Esistono due tipi di cookie: cookie in memoria e i cookie che vengono archiviati sul disco del client. Un cookie in memoria Ŕ uno o pi¨ coppie nome / valore presenti nella memoria del browser fino a quando il browser non viene chiuso. Un cookie che viene memorizzato per disco Ŕ un file sul computer client che contiene coppie nome / valore.

I cookie impostati e recuperati dal codice sia lato client e lato server.

Professionisti IT

  • Questo metodo Ŕ facile da implementare.
  • Questo metodo pu˛ essere salvato su disco per utilizzi futuri (cookie basati su disco) semplicemente impostando una data di scadenza nel cookie. Questo consente l'archiviazione tra le sessioni del browser.

Svantaggi

  • SarÓ possibile modificare manualmente i cookie memorizzati sul disco.
  • Questo metodo Ŕ necessario che siano abilitati nel browser i cookie i client.
  • I cookie non Ŕ possibile memorizzare oggetti.

Esempio

Memorizzare informazioni in un cookie:
<%
   'Set a cookie value.
   Response.Cookies("myInformation") = "somevalue"
   'Expire the cookie to save it to disk. If this is omitted, the cookie
   'will be an in-memory cookie. In this case, the cookie is set to expire
   'in twenty days.
   Response.Cookies("myInformation").Expires = now() + 20
%>
				
recuperare il valore da un cookie:
<%
    'Retrieve the information that is stored.
    myValue = Request.Cookies("myInformation")
%>
				

Campi modulo nascosti

Funzionamento?

Ogni pagina Ŕ necessario un modulo con campi di form nascosti che contengono le informazioni sullo stato. Invece di collegamento e reindirizzamento alle pagine, il modulo viene inviato quando un utente accede a una pagina diversa.

Professionisti IT

  • Questo metodo non richiede i cookie.

Svantaggi

  • Pu˛ essere complicato per il reindirizzamento e collegamenti a pagine.
  • Questo metodo non pu˛ memorizzare oggetti.

Esempio

Memorizzare le informazioni in campi nascosti:
<HTML>
<HEAD>
<SCRIPT LANGUAGE=javascript>
  //Function that is used to submit the links:
  function browseToUrl(url){
    form1.action=url;
    form1.submit();
  }
</SCRIPT>
</HEAD>
<BODY>

<%
  dim myInformation
  myInformation = "somevalue"  
%>

<!-- This stores the value that is set above in the hidden form field. -->
<FORM id="form1" name="form1" action="" method="post">
<INPUT type="hidden" id="myInformation" name="myInformation" value="<%= myInformation%>">  

<!-- Navigation sample that uses this technique. -->
<INPUT type="button" value="p3.asp" id=button1 name=button1 onclick='goToUrl("p3.asp");'>
</FORM>
</BODY>
</HTML>
				
recupera il valore dal campo modulo nascosto:
<%
    'Retrieving the information that is stored.
    myValue = Request.Form("myInformation")
%>
				

QueryString

Come funziona?

Quando si utilizza l'insieme QueryString , le variabili sono in vengono di memorizzati nell'URL come una coppia nome / valore e. Ad esempio:
http://servername/page.asp?var1=value1&var2=value2&var3=value3
				
Nota : le coppie nome / valore sono separate da una e commerciale (&).

Professionisti IT

  • Se il client i segnalibri nella pagina, lo stato verrÓ mantenute.

Svantaggi

  • L'URL completo pu˛ essere solo 2083 byte.
  • Questo metodo non pu˛ memorizzare oggetti.
  • L'URL Ŕ molto lungo e difficile da leggere.

Esempio

Memorizzare le informazioni in QueryString:
<HTML>
<HEAD></HEAD>
<BODY>
<%
   'Function that assembles the QueryString:
   function AddToQueryString(qs, name, value)
     
     if qs="" then
       qs = name & "=" & value
     else
       qs = qs & "&" & name & "=" & value
     end if
     
     addToQueryString = qs
   end function

   dim querystring

   'Store the first value.
   querystring = AddToQueryString(querystring, "firstvar", "firstvalue")
   'Store the second value.
   querystring = AddToQueryString(querystring, "secondvar", "secondvalue")
%>

<a href="urlreceive.asp?<%=querystring%>">urlreceive.asp</a>
</BODY>
</HTML>
				
recuperare i valori da QueryString:
<%
    'Retrieve the information stored.
    myFirstValue = Request.QueryString("firstvar")
    mySecondValue = Request.QueryString("secondvar")
%>
				

File e database

Funzionamento?

╚ possibile implementare questa tecnica in molti modi diversi. La procedura seguente illustra un modo per implementare i file e database di archiviazione dello stato:
  1. Generare l'ID al primo accesso dell'utente o esplorazioni a una pagina all'interno dell'applicazione.
  2. Utilizzare una delle tecniche in questo articolo per memorizzare l'ID.
  3. Per memorizzare i valori in un file, utilizzare l'ID come nome del file. Per memorizzare i valori in un database, utilizzare una combinazione dell'ID e la coppia nome / valore per identificare il record.
  4. Facoltativamente Ŕ possibile memorizzare un timestamp con la coppia nome / valore nel database. Per i file, Ŕ possibile utilizzare il timestamp dall'ultima revisione.
  5. Scrivere un servizio per eseguire la pulitura (eliminare i record e file) a determinati intervalli (ad esempio, ogni 20 minuti o ogni notte, a seconda di quanti utenti accedono al sito). Il servizio consente il timestamp di determinare se un record Ŕ scaduto.

Professionisti IT

  • I valori sono completamente nascosti dall'utente.
  • Se si utilizza una condivisione di file o in un database, Ŕ possibile utilizzare questo per simulare le variabili di sessione in una Farm Web.
  • Non richiede i cookie.

Svantaggi

  • Memorizza i dati sul lato server.
  • Pu˛ essere complessa da implementare.
  • Questo metodo pu˛ essere lento perchÚ per archiviare e recuperare i valori Ŕ necessario accedere come database e file.

Riferimenti

Per ulteriori informazioni, vedere i seguenti articoli su Microsoft Developer Network (MSDN):
oggetto Session
http://msdn2.microsoft.com/en-us/library/aa371675.aspx

oggetto Application
http://msdn2.microsoft.com/en-us/library/aa210897(office.11).aspx

cookie
Response.Cookies Collection
Request.Cookies Collection

QueryString
http://msdn2.microsoft.com/en-us/library/aa196462(office.11).aspx
Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
244465Come disattivare lo stato di sessione ASP nelle pagine ASP
178037PRB: Variabili di sessione perdute quando ASP si trova nella pagina con frame
Per i pi¨ recenti articoli della Knowledge Base e altre informazioni di supporto su Visual InterDev e Active Server Pages, vedere la seguente pagina sul sito di supporto tecnico Microsoft:
http://support.microsoft.com/search/default.aspx?qu=vinterdev

ProprietÓ

Identificativo articolo: 175167 - Ultima modifica: venerdý 9 marzo 2007 - Revisione: 3.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Active Server Pages 4.0
Chiavi:á
kbmt kbaspobj kbcodesnippet kbhowto kbscript KB175167 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: 175167
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.
Dichiarazione di non responsabilitÓ per articoli della Microsoft Knowledge Base su prodotti non pi¨ supportati
Questo articolo Ŕ stato scritto sui prodotti per cui Microsoft non offre pi¨ supporto. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.

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