Dans cette leçon, nous explorons les scripts de présentation afin de mieux comprendre l'impact d'un script sur les performances de la présentation et trois scénarios dans lesquels les scripts de présentation peuvent être optimisés pour améliorer les performances des scripts.
Nous commencerons par examiner une présentation qui ne fonctionne pas bien et qui nécessite un certain nombre d'interactions entre les threads Main et SandboxWorker, ce qui ralentit les performances de la présentation. Ensuite, nous vous montrons comment optimiser les scripts qui contiennent :
- Utilisation multiple des méthodes getValue et setValue.
- Utilisation multiple de la méthode getResultSet.
- Utilisation non filtrée de la méthode getResultSet.
Résumé
Dans la vidéo, nous explorons trois problèmes courants liés aux performances du script et aux meilleures pratiques pour l'optimisation du script.
- Utilisation multiple des méthodes getValue et setValue.
Dans notre scénario, la zone de texte était mal utilisée pour stocker les états intermédiaires, comme le cas d'utilisation type d'une variable, alors que le script était toujours en cours de traitement.
Au début du script, vous pouvez déclarer une variable de texte vide et, dans la boucle, concaténer les résultats requis dans la variable de texte. En tant que dernière étape du script, le texte est appliqué à la zone de texte.
Ainsi, vous n'avez besoin que de la seule interaction entre les deux threads, qui consiste à appliquer le texte final dans la zone de texte.
- Utilisation multiple de la méthode getResultSet.
Dans notre scénario, la méthode getResultSet est appelée dans l'en-tête ainsi que quatre fois dans la boucle.
Au lieu de demander au fil principal à chaque fois de remettre l'ensemble de résultats, il est préférable de ne le demander qu'une seule fois et de le stocker dans une variable locale. Cette variable locale peut être utilisée autant de fois que nécessaire sans interaction supplémentaire entre le SandboxWorker et le fil principal.
- Utilisation non filtrée de la méthode getResultSet.
Dans notre scénario, le script utilise l'API getResultSet sans indiquer de filtre tel que décalage, limite ou sélection. Sans indiquer de filtre, le tableau retourné de cette API contient un élément pour chaque cellule de l'ensemble de résultats.
Utilisez l'argument Sélections facultatif getResultSet qui peut être utilisé pour restreindre le tableau de retour.
Scripting dans l'événement onResultsetChanged
Il existe un dernier sujet important d'optimisation de script que les développeurs de présentations doivent garder à l'esprit lors des scripts dans l'événement onResultsetChanged.
Quel que soit votre code dans le script d'événement onResultsetChanged, assurez-vous de ne pas modifier le même ensemble de résultats après avoir effectué. Cela déclenche un autre événement onResultsetChanged et une boucle infinie est créée. Le seul moyen pour un utilisateur d'annuler la boucle est de fermer la fenêtre du navigateur.