Questo tipo di logica, viene sfruttata quando bisogna ripetere lo stesso codice asp più volte all'interno della stessa pagina. Infatti è possibile scrivere una sola volta il codice interessato e richiamarlo da qualunque riga della pagina in cui serva. All'interno di questa logica, troviamo due diversi tipi di costrutti possibili: le procedure (subroutine)e le funzioni (function). La differenza fondamentale tra le due è molto semplice. Le procedure non restituiscono nessun valore, mentre le funzioni si. Personalmente io uso sempre funzioni e poi decido se far restituire o meno il valore, comunque per completezza del corso spiegherò anche le procedure. Iniziamo subito col mostrare lo schema di impostazione di procedura ed un esempio d'uso.
sub nomeSubroutine(argomentiSubroutine)
'Corpo della subroutine
End Sub
Adesso mostriamo un esempio banale dell'utilizzo delle stesse. Faremo apparire a video per tre volte la frase "Sono la procedura mostraFrase":
<%
sub mostraFrase
response.write("Sono la procedura mostraFrase"&<br>)
end sub
mostraFrase
mostraFrase
mostraFrase
%>
Il codice riportato sopra, non è ottimizzato al meglio. Per poterlo
render tale bisogna sostituire le tre righe che chiamano la subroutine
mostraFrase con il seguente codice:
for ctCiclo = 1 to 3
mostraFrase
next
Dopo aver spiegato le subroutine, passiamo ora ad analizzare come si strutturano le funzioni per poter poi vedere un loro esempio pratico.
function nomeFunzione(argomentiFunzione)
' Corpo della funzione
end
Adesso vediamo un esempio d'uso già ottimizzato e sfruttando anche gli argomenti della funzione.
<%
'Dichiarazione della funzione
function conta(intValore)
response.write "Siamo al numero ->" &
intValore &"<br>"
end function
'Dichiarazione delle variabili globali
dim intInizio,intFine,ctCiclo
'Inizializzazione delle variabili globali
intInizio = 1
intFine = 10
ctCiclo = 1
'Codice di chiamata funzione
for ctCiclo= intInizio to intFine
call conta(ctCiclo)
next
%>
Prima di concludere la lezione sulle strutture di controllo, desidero fare un'ultima nota sulle subroutine e function. E' possibile interromperle dal loro interno in qualunque momento immettendo la riga di codice exit function (se siamo nel caso di una funzione) oppure exit subroutine (se siamo nel caso di una procedura).