Reindirizzamento di una pagina
In questa guida confronteremo l'istruzione
Response.Redirect con
Server.Tranfer e
Server.Execute.
Per dire al browser di caricare una pagina diversa, si usa l’istruzione:Response.Redirect ”pagina.asp”Tutte le istruzioni dopo questa vengono ignorate dal browser tranne gli eventuali Headers http.
Il processo agisce in questo modo:
Il client richiede al server la pagina1.asp, che contiene un redirect alla pagina2.asp; il client allora richiede al server la pagina2.asp che il server poi gli manda. Il traffico di rete generato è abbastanza. Ecco in figura lo schema delle richieste.
Inoltre se non ho messo l’istruzioneResponse.Buffer=True prima del reindirizzamento e il server ha già spedito del contenuto al browser, appare un errore del tipo:
Response object error 'ASP 0156 : 80004005'
Per ovviare a questi problemi Microsoft nell’IIS 5.0 ha inserito un nuovo metodo di ridirezionamento, il
Server.Transfer, che si invoca in questo modo:Server.Transfer(“pagina2.asp”)Il vantaggio di Transfer è nella sua velocità e nel fatto di essere eseguito direttamente dalla pagina che lo richiama, che trasferisce immediatamente il controllo dell'esecuzione dello script alla pagina chiamata. Infatti lo schema delle richieste diventa:
Inoltre gli oggetti intrinseci di ASP come Session e Application vengono mantenuti, e l’indirizzo URL non cambia. C’è poi un altro metodo, il
Server.Execute che richiama da una pagina l’esecuzione di un’altra, e quando questa è terminata ritorna alla pagina di origine. Lo schema delle richieste è in questo caso:
La sintassi è sempre la stessa:Server.Execute(“pagina2.asp”)
L'Oggetto Response