Commençons par examiner l’étape 4, que vous devez mettre en place pour générer le code des étapes 1 à 3. Dans votre page Web, vous avez besoin d’une fonction qui accepte deux paramètres : le résultat et un contexte (à savoir, le nom du script client effectuant le rappel). Pour
Fonctions de rappel (2)
les besoins de notre exemple, appelons cette fonction ProcessCallbackResult. Le paramètre de résultat contiendra la chaîne retournée par le rappel. Ensuite, pour générer le code des étapes 1 à 3, vous devez définir, dans le cadre du code d’événement de chargement de votre page, les points de terminaison clé pour le traitement du rappel.
L’étape 1 doit obtenir, au moment de l’exécution, l’adresse de votre méthode RaiseCallbackEvent dans votre page serveur et la passer à la page client. Ce traitement commence par un appel à la méthode partagée (ou statique) Page.ClientScript.GetCallback- EventReference(). Cette méthode surchargée accepte le nom de la fonction ProcessCallbackResult sur le client avec trois ou cinq paramètres supplémentaires qui définissent votre fonction de rappel. L’appel à Page.ClientScript.GetCallbackEventReference() est important car vous lui passez le nom de la fonction client à appeler et elle retourne une chaîne qui effectue le rappel, obtient le résultat du rappel, puis passe ce résultat à votre fonction.
Cette génération de code fonctionne car les deux méthodes que vous définissez pour implémenter l’interface ICallbackEventHandler dans votre code serveur sont limitées par les types de nom et de paramètre, laissant à .NET le soin de générer le code client nécessaire pour appeler ces méthodes côté serveur. Je vous encourage à examiner cette fonctionnalité plus en détail sur MSDN (Microsoft Developer Network) afin de voir comment définir les gestionnaires d’erreurs sur votre client et d’autres fonctionnalités robustes sortant du cadre de cet article. Au-delà de la page d’aide de la méthode GetCallbackEventReference(), l’article MSDN « Implementing Client Callbacks Without Postbacks in ASP.NET Web Pages » (adresse http://msdn2.microsoft. com/en-us/library/ms178208(vs.80).aspx constitue un bon point de départ. Après avoir appelé GetCallbackEventReference(), vous combinez le résultat de l’appel avec un script côté client simple pour encapsuler la logique de fonction générée avec un nom que vous pouvez reconnaître et référencer.
Vous créez la fonction en combinant le résultat de type chaîne de l’appel GetCallbackEventReference() avec un en-tête de fonction JScript. Par exemple, si vous avez assigné le résultat de l’appel GetCallbackEventReference() à une variable locale appelée stringDelegate, votre chaîne clientFunction pourrait être générée sous la forme clientFunction = "function GetData(strParam, context) { " + stringDelete + " ; }" Ce code définit GetData, une fonction JScript client qui implémente l’interface de rappel complète définie sur le serveur, puis passe les résultats à ProcessCallbackResult, que vous avez définie précédemment. Pour appeler cette nouvelle fonction client, vous devez simplement l’inclure dans votre page Web en appelant la méthode Page. ClientScript. RegisterClientScriptBlock().
La dernière étape consiste à référencer la fonction client GetData. Par exemple, dans un événement onchange() pour un contrôle client, vous pouvez appeler la fonction GetData et lui passer deux paramètres : strParam et context. Le résultat de cet appel appellera votre fonction personnalisée ProcessCallBackResult, laquelle implémentera le code pour analyser la chaîne retournée et mettre à jour les contrôles sur la page. Par manque de place, je n’inclus pas d’exemple de cette logique, mais dans les guides de démarrage rapide (QuickStart) des sites Web ASP.NET et MSDN, vous pouvez trouver de précieux exemples de la mise en oeuvre des fonctions de rappel tels que celui figurant à cette adresse.
Tout ce traitement se produira sans que l’utilisateur voie une actualisation complète de la page et sans que le serveur ait besoin de retransmettre toute la page. Les fonctions de rappel présentent également des avantages sur le plan des performances, par rapport à la seule utilisation de données de pages en cache. Par exemple, avec une fonction de rappel, vous pouvez prendre une page autrement mise en cache et, lorsque la page est chargée dans le navigateur d’un utilisateur, effectuer un rappel vers le serveur et récupérer des données en temps réel sans recompiler ou modifier vos données mises en cache.
Téléchargez cette ressource
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Activer la mise en veille prolongée dans Windows 10
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Et si les clients n’avaient plus le choix ?
- Afficher les icônes cachées dans la barre de notification
Les plus consultés sur iTPro.fr
- Fuites de données : la France, 2ème pays le plus touché au monde début 2026
- Nomios accélère sur la cybersécurité industrielle avec un SOC renforcé et une Factory OT immersive
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Reprendre le contrôle de son SI : la clé d’un numérique à la fois souverain et responsable
Articles les + lus
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
À la une de la chaîne Tech
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
