> Tech > Fonctions de rappel (2)

Fonctions de rappel (2)

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

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

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010