Maison interface Web js tutoriel Comprendre les fonctions de rappel javascript_connaissances de base

Comprendre les fonctions de rappel javascript_connaissances de base

May 16, 2016 pm 04:23 PM
javascript 回调函数

Passez la fonction en paramètre dans une autre fonction. Cette fonction est ce qu'on appelle la fonction de rappel

Nous rencontrons souvent une situation où les couches A et B d'un projet sont complétées par des personnes différentes. La couche A est responsable de la fonction funA et la couche B est responsable de funcB. Lorsque la couche B souhaite utiliser les données d'un certain module, dit-il aux personnes de la couche A, j'ai besoin que vous fournissiez des données qui répondent à certains besoins, et vous me fournissez une interface.

Le personnel de niveau A a dit : Je vais vous fournir des données, et comment les afficher et les traiter est l'affaire de B.
Bien entendu, la couche B ne peut pas fournir une interface de données pour tous les besoins. B fournit une interface par laquelle A passe pour obtenir les données, puis B écrit une fonction pour les afficher.

C'est-à-dire que vous devez coopérer avec d'autres personnes, d'autres fournissent des données et vous n'avez pas besoin de prêter attention à la façon dont les autres obtiennent ou construisent des données. Il vous suffit d'opérer sur les données obtenues. A ce moment, vous devez utiliser la fonction de rappel

Par conséquent, les rappels sont essentiellement un modèle de conception, et les principes de conception de jQuery (y compris d'autres frameworks) suivent ce modèle.

Un exemple d'utilisation de rappels en synchronisation (blocage), le but est d'exécuter func2 une fois l'exécution du code func1 terminée.

Copier le code Le code est le suivant :

var func1=fonction(rappel){
//faire quelque chose.
(callback && typeof(callback) === "function") && callback();
>

func1(func2);
var func2=fonction(){
>

Exemple de rappel asynchrone :

Copier le code Le code est le suivant :

$(document).ready(callback);

$.ajax({
​​​url : "test.html",
contexte : document.body
}).done(function() {
          $(this).addClass("done");
}).fail(function() {
alert("erreur");
}).always(function() {
alert("terminé");
});

Notez que la requête ajax est bien asynchrone, mais cette requête est demandée par le navigateur pour ouvrir un nouveau thread Lorsque le statut de la requête change, si un rappel a été défini précédemment, le thread asynchrone générera un changement de statut. événement et placez-le en Attente de traitement dans la file d'attente de traitement du moteur JavaScript. Voir : http://www.phpv.net/html/1700.html

Quand le rappel sera-t-il exécuté ?

La fonction de rappel est généralement exécutée en dernier dans une situation synchrone, mais peut ne pas être exécutée dans une situation asynchrone car l'événement n'est pas déclenché ou les conditions ne sont pas remplies.

Occasions d'utilisation de la fonction de rappel

Chargement des ressources : exécuter le rappel après le chargement dynamique des fichiers js, exécuter le rappel après le chargement de l'iframe, le rappel de l'opération ajax, exécuter le rappel une fois le chargement de l'image terminé, AJAX, etc.
Les événements DOM et Node.js sont basés sur le mécanisme de rappel (les rappels Node.js peuvent avoir des problèmes d'imbrication de rappel multicouche).
Le temps de retard de setTimeout est de 0. Ce hack est souvent utilisé. La fonction appelée par settimeout est en fait l'incarnation d'un rappel
.

Appels chaînés : lorsqu'ils sont chaînés, il est facile d'implémenter des appels chaînés dans la méthode assignor (setter) (ou dans une méthode qui ne renvoie pas de valeur elle-même), mais le getter (getter) est relativement difficile à implémenter. appels chaînés, car vous avez besoin que l'évaluateur renvoie les données dont vous avez besoin au lieu de ce pointeur. Si vous souhaitez implémenter une méthode chaînée, vous pouvez utiliser une fonction de rappel pour l'implémenter
.

Les appels de fonction de setTimeout et setInterval obtiennent leurs valeurs de retour. Étant donné que les deux fonctions sont asynchrones, c'est-à-dire que leur séquence d'appel est relativement indépendante du processus principal du programme, il n'y a aucun moyen d'attendre leurs valeurs de retour dans le corps, et le programme ne s'arrêtera pas et n'attendra pas quand elles le seront. ouvert. Sinon, la signification de setTimeout et setInterval sera perdue, cela n'a donc aucun sens d'utiliser return et le rappel ne peut être utilisé. La signification du rappel est d'informer la fonction d'agent du résultat de l'exécution du minuteur pour un traitement en temps opportun.

Collectez des informations en ligne et vous devriez les comprendre. Je peux trier moi-même un exemple :

Copier le code Le code est le suivant :

fonction fun(num,callback){
Si(num<0) {
alert("Appel de la fonction couche A pour le traitement!");
alert("Les données ne peuvent pas être négatives, erreur de saisie !"); }sinon if(num==0){
alert("Appel de la fonction couche A pour le traitement!");
alert("Cet élément de données n'existe pas !");
}autre{
alert("Appelez le traitement de la fonction de couche B!");
         rappel(1);
>
>
fonction test(){
var num=document.getElementById("score").value;
Fun(num,function(back){ //Fonction de traitement anonyme de la couche B
alert(":" retour);
Si(num<2)
alert("Le nombre est 1");
          else if(num<=3)
alert("Le nombre est 2 ou 3!");
        autre
alert("Le nombre est supérieur à 3!");
})
>

Lorsque la fonction commence à exécuter fun, elle s'exécute d'abord pour déterminer si num est un nombre négatif ou zéro, sinon elle exécute la fonction de traitement de la couche B alert(":" back); <= 3, >3 et autres situations.

Conseils d'expérience :

Il est préférable de s'assurer que le rappel existe et doit être une référence de fonction ou une expression de fonction :

Copier le code Le code est le suivant :
(callback && typeof(callback) === "function") && callback();

Copier le code Le code est le suivant :
var obj={
init : fonction (rappel){
              //À FAIRE...
If(callback && typeof(callback) === "function") && callback()){
                callback('init...');//Callback
>
>


Enfin, pourquoi devrions-nous utiliser des fonctions de rappel ? La métaphore suivante est très vivante et intéressante.
Si vous avez quelque chose à faire, vous allez dans le dortoir d'à côté pour chercher vos camarades de classe et constatez qu'ils ne sont pas là. Que devez-vous faire ?

Méthode 1, allez au dortoir voisin toutes les quelques minutes pour voir s'il y a quelqu'un

Méthode 2, merci de demander aux personnes qui partagent le même dortoir avec lui de vous appeler lorsqu'elles le verront revenir

Le premier est un sondage et le second est un rappel.

Alors dis-moi, puis-je simplement attendre dans le prochain dortoir jusqu'à ce que mes camarades de classe reviennent ?

Oui, c'est juste que vous auriez pu gagner du temps pour faire autre chose, mais maintenant vous devez le perdre à attendre. Transformez l'appel asynchrone non bloquant d'origine en un appel synchrone bloquant.

Les rappels JavaScript sont utilisés dans des scénarios d'appels asynchrones, et les performances de l'utilisation des rappels sont meilleures que celles de l'interrogation.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Comment écrire une fonction de rappel Java Comment écrire une fonction de rappel Java Jan 09, 2024 pm 02:24 PM

Les méthodes d'écriture de la fonction de rappel Java sont : 1. Rappel d'interface, définir une interface qui contient une méthode de rappel, utiliser l'interface comme paramètre où le rappel doit être déclenché et appeler la méthode de rappel au moment approprié ; Rappel de classe interne anonyme, vous pouvez utiliser des classes internes anonymes pour implémenter des fonctions de rappel afin d'éviter de créer des classes d'implémentation supplémentaires ; 3. Rappels d'expressions Lambda Dans Java 8 et versions ultérieures, vous pouvez utiliser des expressions Lambda pour simplifier l'écriture des fonctions de rappel.

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Syntaxe de base et application des fonctions de rappel en Java Syntaxe de base et application des fonctions de rappel en Java Jan 30, 2024 am 08:12 AM

Introduction à l'écriture de base et à l'utilisation des fonctions de rappel Java : dans la programmation Java, la fonction de rappel est un modèle de programmation courant. Grâce à la fonction de rappel, une méthode peut être transmise en tant que paramètre à une autre méthode, réalisant ainsi un appel indirect de la méthode. L'utilisation de fonctions de rappel est très courante dans des scénarios tels que la programmation événementielle et asynchrone et la mise en œuvre d'interfaces. Cet article présentera l'écriture et l'utilisation de base des fonctions de rappel Java et fournira des exemples de code spécifiques. 1. Définition de la fonction de rappel Une fonction de rappel est une fonction spéciale qui peut être utilisée comme paramètre

See all articles