Il loop è una tecnica fondamentale di qualunque linguaggio di programmazione. Le cosiddette loop structures permettono di ripetere una serie di istruzioni all'interno di un programma fino a quando si vengono a verificare una o piu' condizioni stabilite dal programmatore.
Con ColdFusion è possibile usare le strutture loop in diversi modi:
- Loop indicizzati
- Loop condizionali
- Loop basati su queries
- Loop basati su liste di valori
Loop indicizzati
Un loop indicizzato ripete le istruzioni contenute al suo interno per un certo numero di volte stabilito dai parametri del loop stesso. I loop indicizzati di ColdFusion sono paragonabili ai For loops di altri linguaggi di programmazione.
Sintassi:
INDEX = "nome_della_variabile_indice"
FROM = "valore_iniziale"
TO = "valore_finale"
STEP = "incremento"
>
"codice HTML o CFML da eseguire più volte"
</CFLOOP>
INDEX
FROM
TO
STEP
Esempio:
<CFLOOP
INDEX = "i"
FROM = "1"
TO = "10"
>
<CFOUTPUT> #i# </CFOUTPUT>
</CFLOOP>
L'output fornito da questo codice sara':
Esempio:
L'output fornito da questo codice sara' esattamente l'opposto del precedente:
Loop condizionali
I loop condizionali ripetono una serie di istruzioni fino a che una certa condizione risulta vera. Per utilizzare questo tipo di struttura è necessario che il codice compreso nel loop si occupi di modificare la condizione sulla quale è basato il loop stesso, in modo che dopo una serie di iterazioni essa diventi falsa.
I loop condizionali di ColdFusion sono paragonabili ai While loop di altri linguaggi di programmazione.
Sintassi:
"codice HTML o CFML da eseguire più volte"
</CFLOOP>
Condition
Esempio:
L'output fornito da questo codice sara':
Loop basati su queries
Un loop basato su query ripete le istruzioni comprese al suo interno per il numero di record presente all'interno di una data query. Durante ogni iterazione il loop rende disponibile i valori della query associati ai record che si stanno processando.
Sintassi:
QUERY = "nome_della_query"
STARTROW = "numero_della_riga_di_partenza"
ENDROW = "numero_della_riga_finale"
>
"codice HTML o CFML da eseguire più volte"
</CFLOOP>
Query
Startrow
Endrow
Esempio:
<CFLOOP
QUERY = "prova"
>
#nome# #cognome#
</CFLOOP>
Loop basati su liste di valori
Un loop basato su una lista di valori permette di effettuare operazioni su più elementi contenuti in una variabile, oppure sul risultato di una funzione.
Sintassi:
INDEX = "variabile_interna_al_loop"
LIST = "lista_di_valori"
DELIMITERS = "carattere_separatore"
>
"codice HTML o CFML da eseguire più volte"
</CFLOOP>
Index
List
Delimiters
Esempio:
L'output fornito da questo codice sara':
"Aldo Giovanni Giacomo"
Suggerimenti
I loop sono essenziali nella maggior parte delle applicazioni di qualunque linguaggio di programmazione.
In ColdFusion il loop più tipicamente utilizzato è quello associato ad una query, come quando per esempio si vuole visualizzare il contenuto di una tabella di un database.
Un potenziale svantaggio di queste strutture puo' essere il consumo di risorse del server. È consigliabile strutturare con attenzione i propri loop ed assicurarsi che non vi sia il modo di ritrovarsi nella condizione di poter generare un loop infinito.
Qualche piccolo accorgimento puo' essere ininfluente per la singola applicazione, ma a lungo andare puo' diventare un fattore cruciale per un server dove di applicazioni ne possono girare a decine nello stesso momento.