- En utilisant la syntaxe CFML :
- En utilisant le tag CFScript :
Note de performance (1) :
Les boucles avec le tag cfloop sont moins rapides que les boucles dans CFScript.
Voici le code Java généré par ColdFusion pour les deux cas :
-
Le tag cfloop est traduit en :
-
La boucle dans le tag CFScript ColdFusion est traduite en :
Le code Java du tag CFScript est clairement plus simple. Tous les détails ajoutés pour le tag
cfloop sont la cause de différence de performance qu'on peut facilement tester si les boucles sont longues.
Note de performance (2) :
ColdFusion peut insérer un saut de ligne ou une ligne
vide pour chaque saut de ligne entre les tags CFML. Dans l'exemple précédent,
il y aura des sauts de lignes dans la page HTML pour chaque itération de la
boucle cfloop. L'ajout de ces lignes peut "affecter" les performances
de la page, ce qui est normal puisque ColdFusion ajoute du code pour écrire ces
lignes vides en plus la taille de la page HTML devient plus grande avec l'ajout
de ces lignes vides. Vous pouvez éviter l'ajout de ces sauts de lignes si :
- vous enleviez
les espaces entre les tags !
- vous utilisiez la
fonction « WriteOutput » !
- sinon, vous
pouvez utiliser le tag « cfprocessingdirective » qui permet
d'éliminer les lignes vides (j'ai essayé de le tester mais ca n'a pas
fonctionner !).
Exemple :
Voici le résultat affiché dans le navigateur :
Voici le code html généré :
Remarques :
- Pour la première boucle, il y a un saut de ligne et une ligne vide pour chaque itération.
- Pour la deuxième boucle, il y a juste un saut de ligne pour chaque itération.
- Pour la troisième boucle, il n'y a aucun saut de ligne.
TODO : Ajouter des détails sur CfJspPage.checkRequestTimeout("cfloop")