Je ne suis pas vraiment sûr à ce sujet, mais je pense que le rappel est ce qui se passe lorsque la page est soumise au serveur.
Le délégué de création de client est là pour créer un délégué pour appeler des méthodes JavaScript.
La méthode Function.CreateDelegate() est vraiment utile.
Supposons que vous souhaitiez gérer un événement de clic sur un bouton en JavaScript. L'objet "this" disponible dans la fonction qui gère le clic sur le bouton est le bouton sur lequel vous avez cliqué.
Dites maintenant que vous avez un objet JavaScript qui capture l'événement de clic de bouton et qui fait quelque chose. Normalement, "this" fait référence à l'objet JavaScript lui-même mais puisque la méthode Object est utilisée pour gérer l'événement de clic de bouton "this" fait référence à l'objet qui a déclenché l'événement: le bouton.
Pour contourner ce problème, la méthode JavaScript apply a été créée. Ainsi, au lieu de capturer l'événement de clic de bouton en spécifiant la méthode de l'objet JavaScript dans la méthode attachEvent/attachEventListener (ou la méthode $ addHandler() dans Ajax.NET Framework), vous utiliseriez la méthode apply() avec ces attachEvent/attachEventListener. Cela modifie le contexte afin que "this" fasse référence à l'objet JavaScript au lieu de l'objet qui a déclenché l'événement.
Maintenant, la méthode Function.CreateDelegate() fait plus que simplement utiliser la méthode apply dans la création d'un délégué client.
Jetez un oeil sur le code:
Function.createDelegate = function Function$createDelegate(instance, method) {
/// <summary locid="M:J#Function.createDelegate" />
/// <param name="instance" mayBeNull="true"></param>
/// <param name="method" type="Function"></param>
/// <returns type="Function"></returns>
var e = Function._validateParams(arguments, [
{name: "instance", mayBeNull: true},
{name: "method", type: Function}
]);
if (e) throw e;
return function() {
return method.apply(instance, arguments);
}
}
Il y a une chose que vous devez savoir sur la méthode apply(). Lorsque vous l'exécutez, il exécute la méthode qui est le délégué. Pour contourner cela, la méthode createDelegate fait ce qui précède. Donc, je ne suis pas vraiment sûr de la manière dont un callback s'intègre à cela, mais l'utilisation de la méthode createDelegate() est une bonne idée lorsque vos objets JavaScript gèrent les événements provoqués par certains éléments de l'interface utilisateur.
Je suppose que le rappel est l'action qui a lieu lorsque la demande est envoyée par le navigateur au serveur. La plupart du temps, la méthode __doPostback est utilisée pour préformer le rappel. Cette méthode prend 2 paramètres ... l'objet qui a causé la publication/callback sur le serveur, et les arguments pour le postback/callback. Ce serait cependant quelque chose de complètement différent pour le délégué du client.
Bonne programmation
-Frinny
verbeux meilleure réponse – egidiocs