Molto spesso si costruiscono script che prevedono l'effettuazione di query su una tabella da parte di tutti gli utenti che accedono al sito nonostante la stessa tabella (o limitatamente i campi restituiti dalla query) sia oggetto di modifiche solo raramente.
Esiste un modo per evitare che tutti gli utenti eseguano ad ogni accesso la stessa identica query ed alleggerire quindi il lavoro del server: utilizzare le variabili Application.
Una volta creata una variabile Application, questa è disponibile per tutte le pagine del sito web e per tutti gli utenti: solo nel caso in cui vi fosse un restart di IIS la variabile sarebbe azzerata.
Lo script di seguito mostra come sia possibile creare la variabile application con le informazioni provenienti dal database (lista delle sezioni del sito, ad esempio) e stamparla in ogni pagina piuttosto che effettuare infinite volte la stessa query sul database.
<%
function elencoSezioni()
if IsNull(Application("sezioni") then
'Apri connessione (conn)
'Apri recordset (rs)
strSQL = "SELECT * FROM tSezioni ORDER BY sezione"
rs.Open strSQL, conn
if not rs.EOF then
sQuery = ""
sQuery = "<select name=""sezione"">"
do while not rs.EOF
sQuery = sQuery &"<option value="""& rs("sezione_id") &""">"& rs("sezione") &"</option>"
rs.MoveNext
Loop
sQuery = sQuery &"</select>"
'Creo la variabile application
Application("sezioni") = sQuery
end if
'Chiudi recordset (rs)
'Chiudi connessione (conn)
end if
elencoSezioni = Application("sezioni")
end function
Response.Write("<form method = ""post"" action = ""pagina.asp"">")
Response.Write(elencoSezioni())
Response.Write("</form>")
%>