Explications
Dans les applications web modernes, la performance est un facteur clé, en particulier lorsqu’on travaille avec de grands ensembles de données ou des vues complexes. SAPUI5 offre un mécanisme pour gérer ces défis de performance avec les paramètres suspend
et resume
. Ces paramètres permettent aux développeurs de contrôler quand et comment l’interface utilisateur est mise à jour, garantissant ainsi une expérience utilisateur fluide, même lors d’opérations intensives.
Le paramètre suspend
est utilisé pour suspendre temporairement le traitement de la liaison de données. Lorsque vous activez le flag “suspend” sur une liaison d’un modèle OData spécifique, celle-ci ne sera pas mise à jour tant que la fonction “resume” ne sera pas utilisée.
Exemples d’utilisation :
- Une liaison doit être filtrée selon une valeur dynamique (non connue au moment de l’écriture du code). Cela pourrait être, par exemple, une aide à la saisie dépendante d’une valeur précédemment entrée par l’utilisateur.
- Des mises à jour massives ou des changements dans un modèle où plusieurs propriétés ou valeurs sont modifiées simultanément.
- Empêcher des rafraîchissements excessifs de l’UI et améliorer les performances lorsqu’un grand nombre de changements de données se produisent simultanément.
Le paramètre resume
met fin à la suspension. Une fois les opérations nécessaires terminées (filtrage, mises à jour massives, etc.), vous pouvez reprendre le processus de liaison des données, garantissant ainsi que l’UI est mise à jour avec les données les plus récentes.
Avantages :
- Évite les appels OData inutiles
- Réduit les vacillements ou mises à jour inutiles de l’UI
- Améliore les performances lors de changements de données intensifs
Cas d’utilisation
Les liaisons peuvent être suspendues soit dans le contrôleur, soit dans la vue, puis être reprises dans le contrôleur. Voici un exemple de suspension de liaisons lors de l’application d’un filtre afin d’éviter les mises à jour automatiques pendant l’application du filtre.
View.wml
<List items="{ path: '/ExamplePath', suspended: true }"/>
<Button text="Apply filter" press="onApplyFilter" />
controller.js
onApplyFilter: function () {
var oListBinding = this.getBinding("items")
sFilterValue = this.getView().byId("filterInput").getValue();
aFilters = [ new Filter("MyProperty", FilterOperator.EQ, sFilterValue) ];
// Apply dynamic flter on OData binding
oListBinding.filter(aFilters);
// Resume the binding to perform OData call
oListBinding.resume();
}
Conclusion
Les paramètres suspend
et resume
sont des outils essentiels pour optimiser les performances des applications SAPUI5, permettant aux développeurs de gérer comment et quand la vue est mise à jour en fonction des changements dans le modèle. Cela aide à prévenir les rafraîchissements excessifs de l’interface utilisateur (UI) et améliore la réactivité de l’application lors des opérations lourdes. Je me retrouve souvent à utiliser cette méthode en raison de son efficacité et de la manière dont elle améliore l’expérience utilisateur.