Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Velocizzare l'esecuzione di pagine ASP

Migliorare il codice per migliorare le prestazioni
Migliorare il codice per migliorare le prestazioni
Link copiato negli appunti

Per esaminare compiutamente l'oggetto del presente articolo, importante capire in che modo Microsoft Internet Information Services (IIS) gestisce le richieste in ingresso. Quando un server web IIS riceve una richiesta, esamina innanzitutto l'estensione del file richiesto per determinare la modalità di gestione dello stesso.

Le richieste possono essere gestite in maniera nativa da IIS (come accade per tutto ciò che è statico: pagine HTML, immagini ecc.) oppure possono essere indirizzate ad un'estensione ISAPI. Un'estensione ISAPI rappresenta una classe compilata, non gestita, che riceve la richiesta web in ingresso e genera
infine il contenuto per la risorsa richiesta.

Ad esempio, una richiesta per una pagina denominata "prova.asp" verrà indirizzata all'estensione ISAPI asp.dll che si occuperà di caricare la pagina ASP, eseguirla e restituire il rendering HTML a IIS, il quale provvederà poi ad inviarla al client richiedente.

Molti sviluppatori sono soliti fondere blocchi di rendering del codice con parti scritte in HTML statico. Il motivo principale dell'adozione di questa tecnica è dovuto al fatto che la lettura risulta più chiara ed il codice perfettamente indentato e di diversi colori, nel caso in cui si impieghino editor che supportano questa funzionalità.

Prendiamo adesso in considerazione il codice sottostante:

<%@LANGUAGE="VBSCRIPT"%>
<html>
<head>
   <title>Pagina di prova</title>
</head>
<body>
Qui eseguiamo una parte in "modalità HTML"...
<%
   Response.Write ("<p>qui in ""modalità
ASP""...</p>")
%>
...e qui di nuovo HTML.
</body>
</html>

Questa tecnica è inefficiente in quanto forza il server ad eseguire sempre il passaggio da una modalità all'altra prima di restituire il codice finale: da HTML ad ASP e viceversa.

Ciononostante il codice di sopra è ben formattato: i tag HTML e quelli ASP sono in sequenza e ben indentati. Dovessimo rivisitare lo script di questa pagina dopo molto tempo non avremmo alcuna difficoltà interpretativa; tutto molto chiaro e facilmente manutenibile.

A ben vedere però stiamo volgendo l'attenzione sulla facilità realizzativa dello script piuttosto che su quella di caricamento della pagina da parte dell'utenza.

I navigatori infatti scaricano anche ritorni a capo e tag in eccesso e il tempo di caricamento potrebbe risentirne anche se impercettibilmente.

In quest'ottica, la prima parte dello script potremmo anche scriverla su una sola riga:

<%@LANGUAGE="VBSCRIPT"%>
<html><head><title>Pagina di prova</title></head><body>
Qui eseguiamo una parte in "modalità HTML"...
<%
   Response.Write ("<p>qui in ""modalità
ASP""...</p>")
%>
...e qui di nuovo HTML.
</body>

A video otterremmo esattamente la stessa cosa. Se visualizziamo il codice della pagina possiamo renderci conto che lo "spazio" utilizzato è minore del primo script, a tutto vantaggio della velocità di caricamento.

Purtroppo però lo script risulta quasi del tutto illeggibile e, di conseguenza, scarsamente mantenibile e riutilizzabile.

La soluzione migliore è quella di non costringere l'interprete a passare da una modalità all'altra velocizzando il caricamento e contemporaneamente beneficiare dei vantaggi tipici dell'indentazione del codice.

Lo script sottostante, anche se non presentato con colori diversi neanche dagli editor che posseggano questa funzionalità, è comunque leggibile e chiaro:

<%@LANGUAGE="VBSCRIPT"%>
<%'Inizio intestazione script Response.Write("<html>")
Response.Write("<head>")
    Response.Write("<title>Pagina di prova</title>")
Response.Write("</head>") 'Inizio corpo
Response.Write("<body>")
Response.Write("<table>")
Response.Write("<tr>")
Response.Write("<td>Qui eseguiamo tutto in modalità ASP!</td>")
Response.Write("</tr>")
Response.Write("</table>")
'Fine corpo Response.Write("</body>")
Response.Write("</html>")
'Fine script
%>

Imparando a convivere con gli script redatti secondo questa modalità, l'impiego del colore diventerà presto superfluo a tutto vantaggio della velocità di caricamento della pagina.

Vi sono inoltre altri vantaggi in tutto ciò. Innanzitutto la visualizzazione del codice HTML della pagina sul client è per lo più incomprensibile e ingestibile, scoraggiando chiunque volesse recuperare contenuti o altro dalle nostra pagina HTML.

Secondariamente, la tecnologia ASP.NET (evoluzione di casa Microsoft) non consente il passaggio da una modalità ad un'altra: blocchi di rendering del codice non possono includere funzioni HTML. Un altro motivo per sposare sin d'ora questa tecnica di sviluppo che richiede forse qualche sforzo in più all'inizio, ma che ripaga ampiamente gli sviluppatori con i vantaggi che offre in termini di velocità di caricamento e di protezione delle pagine sviluppate.


Ti consigliamo anche