Maison interface Web js tutoriel La différence entre la synchronisation et l'asynchrone et la synchronisation et l'asynchronisme de la valeur de l'attribut asynchrone en ajax

La différence entre la synchronisation et l'asynchrone et la synchronisation et l'asynchronisme de la valeur de l'attribut asynchrone en ajax

May 24, 2018 pm 03:26 PM
ajax async 同步

Dans la méthode ajax de Jquery, async est utilisé pour contrôler la synchronisation et l'asynchrone. Lorsque la valeur async est vraie, il s'agit d'une requête asynchrone, et lorsque la valeur async est fausse, il s'agit d'une requête synchrone. L'attribut async en ajax est utilisé pour contrôler la manière dont les données sont demandées. La valeur par défaut est true, ce qui signifie que les données sont demandées de manière asynchrone par défaut.

La méthode ajax dans jquery a un attribut async pour contrôler la synchronisation et l'asynchronisme. La valeur par défaut est true, c'est-à-dire que la requête ajax est une requête asynchrone par défaut. Parfois, la synchronisation AJAX est utilisée dans les projets. Cette synchronisation signifie que lorsque le code JS est chargé dans l'AJAX actuel, tout le code de la page cessera de se charger et la page apparaîtra dans un état d'animation suspendue. Lorsque l'AJAX sera terminé, il continuera à s'exécuter. les autres codes et l'état suspendu de la page seront levés. De manière asynchrone, d'autres codes peuvent s'exécuter pendant l'exécution de ce code AJAX.

L'attribut async en ajax est utilisé pour contrôler la manière de demander des données. La valeur par défaut est true, ce qui signifie que les données sont demandées de manière asynchrone par défaut.

1. La valeur asynchrone est vraie (asynchrone)

Quand ajax envoie la requête, en attendant le retour du serveur, le premier plan continuera à exécuter l'ajax bloc. Le script ne s'exécutera pas avec succès tant que le serveur n'aura pas renvoyé le résultat correct, ce qui signifie que deux threads sont exécutés à ce moment-là, un thread après le bloc ajax envoie la requête et le script après le bloc ajax (un autre thread)

Par exemple

$.ajax({  
     type:"POST", 
     url:"Venue.aspx?act=init", 
      dataType:"html", 
     success:function(result){  //function1()
       f1(); 
       f2();  
    } 
     failure:function (result) {  
      alert('Failed');  
     }, 
 } 
 function2();
Copier après la connexion

Dans l'exemple ci-dessus, lorsque le bloc ajax fait une requête, il restera dans function1() et attendez le retour du serveur, mais en même temps (pendant ce processus d'attente), la réception exécutera function2().

2. La valeur asynchrone est fausse (synchrone)

Lorsque l'AJAX actuel est exécuté, le code JS suivant cessera de s'exécuter jusqu'à ce que l'AJAX soit terminé. , pour continuer à exécuter le code JS suivant.

Par exemple,

$.ajax({  
     type:"POST", 
     url:"Venue.aspx?act=init", 
     dataType:"html", 
     async: false,
    success:function(result){  //function1()
       f1(); 
       f2(); 
     } 
    failure:function (result) {  
      alert('Failed');  
     }, 
 } 
 function2();
Copier après la connexion

Lorsque asyn est défini sur false, la requête ajax est synchronisée. c'est-à-dire qu'une fois que le bloc ajax aura envoyé une requête à ce moment-là, il attendra à function1() et n'exécutera pas function2() jusqu'à ce que la partie function1() soit terminée.

La différence entre la synchronisation Ajax et asynchrone

var returnValue = null; 
xmlhttp = createXmlHttp(); 
xmlhttp.onreadystatechange = function() { 
  if(xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
    if (xmlhttp.responseText == "true") { 
      returnValue = "true"; 
    } 
    else { 
      returnValue = "false"; 
    } 
  } 
}; 
xmlhttp.open("Post",url,true); //异步传输 
xmlhttp.setRequestHeader("If-Modified-Since","0"); //不缓存Ajax
xmlhttp.send(sendStr); 
return returnValue;
Copier après la connexion

Seulement quand c'est le cas asynchrone Utilisez la valeur d'état xmlHttpReq.onreadystatechange ! Voici les différentes méthodes d'appel asynchrone et synchrone :

Java

xmlHttpReq.open("GET",url,true);//异步方式
  xmlHttpReq.onreadystatechange = showResult; //showResult是回调函数名
  xmlHttpReq.send(null);
function showResult(){  
  if(xmlHttpReq.readyState == 4){   
   if(xmlHttpReq.status == 200){
   ******
   }
  }
}
Copier après la connexion

Java

xmlHttpReq.open("GET",url,false);//同步方式  
      xmlHttpReq.send(null);  
      showResult(); //showResult虽然是回调函数名但是具体用法不一样~  
function showResult(){   
       //if(xmlHttpReq.readyState == 4){  这里就不用了,直接dosomething吧~  
        //if(xmlHttpReq.status == 200){  
          ******//dosomething  
        //}  
      //}  
}
xmlhttp.open("Post",url,true);
Copier après la connexion

Si elle est synchrone (faux), la valeur de retour est vraie ou fausse, car une fois l'envoi exécuté, onreadystatechange commence à sera exécuté et le programme attendra jusqu'à ce que onreadystatechange soit exécuté. Une fois que tout sera exécuté, l'instruction suivante ne sera exécutée qu'après l'obtention du texte de réponse, donc returnValue doit avoir une valeur.

Si elle est asynchrone (vrai), la valeur de retour doit être nulle, car après l'exécution de send, le programme n'attend pas la réponse de xmlhttp et continue d'exécuter l'instruction suivante, donc returnValue a renvoyé null avant que cela ait changé.

Si vous souhaitez obtenir la valeur de retour xmlhttp, vous devez utiliser la synchronisation. La valeur de retour ne peut pas être obtenue de manière asynchrone.

Veuillez noter lors de l'utilisation du pool xmlhttp de manière synchrone et asynchrone : lors de l'obtention de xmlhttp, vous ne pouvez créer qu'un nouveau xmlhttp, et vous ne pouvez pas retirer le xmlhttp utilisé du pool, car le readyState du utilisé xmlhttp vaut 4, donc les synchrones et les asynchrones enverront mais n'exécuteront pas onreadystatechange.

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles connexes :

Comprendre la valeur de l'option d'attribut de type de données dans jquery ajax

Implémentation d'un intervalle de N secondes basé sur Jquery ajax technologie Transmettre la valeur à une page

Résoudre le problème avant et arrière d'ajax basé sur Jquery.history

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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)

Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas à l'erreur Outlook Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas à l'erreur Outlook Mar 18, 2024 am 09:46 AM

Lorsque vous constatez qu'un ou plusieurs éléments de votre dossier de synchronisation ne correspondent pas au message d'erreur dans Outlook, cela peut être dû au fait que vous avez mis à jour ou annulé des éléments de réunion. Dans ce cas, vous verrez un message d'erreur indiquant que votre version locale des données est en conflit avec la copie distante. Cette situation se produit généralement dans l'application de bureau Outlook. Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas. Pour résoudre le conflit, ouvrez les projets et retentez l'opération. Réparer Un ou plusieurs éléments dans les dossiers synchronisés ne correspondent pas à l'erreur Outlook Dans la version de bureau d'Outlook, vous pouvez rencontrer des problèmes lorsque des éléments du calendrier local entrent en conflit avec la copie du serveur. Heureusement, il existe des moyens simples d’aider

Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Feb 20, 2024 am 10:07 AM

Titre : Méthodes et exemples de code pour résoudre les erreurs 403 dans les requêtes jQuery AJAX L'erreur 403 fait référence à une demande selon laquelle le serveur interdit l'accès à une ressource. Cette erreur se produit généralement parce que la demande manque d'autorisations ou est rejetée par le serveur. Lorsque vous effectuez des requêtes jQueryAJAX, vous rencontrez parfois cette situation. Cet article explique comment résoudre ce problème et fournit des exemples de code. Solution : Vérifiez les autorisations : assurez-vous d'abord que l'adresse URL demandée est correcte et vérifiez que vous disposez des autorisations suffisantes pour accéder à la ressource.

Comment résoudre l'erreur 403 de la requête jQuery AJAX Comment résoudre l'erreur 403 de la requête jQuery AJAX Feb 19, 2024 pm 05:55 PM

jQuery est une bibliothèque JavaScript populaire utilisée pour simplifier le développement côté client. AJAX est une technologie qui envoie des requêtes asynchrones et interagit avec le serveur sans recharger la page Web entière. Cependant, lorsque vous utilisez jQuery pour effectuer des requêtes AJAX, vous rencontrez parfois des erreurs 403. Les erreurs 403 sont généralement des erreurs d'accès refusé par le serveur, probablement en raison de problèmes de politique de sécurité ou d'autorisation. Dans cet article, nous verrons comment résoudre la requête jQueryAJAX rencontrant une erreur 403.

PHP et Ajax : créer un moteur de suggestions de saisie semi-automatique PHP et Ajax : créer un moteur de suggestions de saisie semi-automatique Jun 02, 2024 pm 08:39 PM

Créez un moteur de suggestions de saisie semi-automatique en utilisant PHP et Ajax : Script côté serveur : gère les requêtes Ajax et renvoie des suggestions (autocomplete.php). Script client : envoyer une requête Ajax et afficher des suggestions (autocomplete.js). Cas pratique : Incluez le script dans la page HTML et spécifiez l'identifiant de l'élément d'entrée de recherche.

Comment résoudre le problème de l'erreur 403 jQuery AJAX ? Comment résoudre le problème de l'erreur 403 jQuery AJAX ? Feb 23, 2024 pm 04:27 PM

Comment résoudre le problème de l’erreur 403 jQueryAJAX ? Lors du développement d'applications Web, jQuery est souvent utilisé pour envoyer des requêtes asynchrones. Cependant, vous pouvez parfois rencontrer le code d'erreur 403 lors de l'utilisation de jQueryAJAX, indiquant que l'accès est interdit par le serveur. Cela est généralement dû aux paramètres de sécurité côté serveur, mais il existe des moyens de résoudre le problème. Cet article explique comment résoudre le problème de l'erreur 403 jQueryAJAX et fournit des exemples de code spécifiques. 1. faire

Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Mar 09, 2024 pm 05:36 PM

L'utilisation d'Ajax pour obtenir des variables à partir de méthodes PHP est un scénario courant dans le développement Web. Grâce à Ajax, la page peut être obtenue dynamiquement sans actualiser les données. Dans cet article, nous présenterons comment utiliser Ajax pour obtenir des variables à partir de méthodes PHP et fournirons des exemples de code spécifiques. Tout d’abord, nous devons écrire un fichier PHP pour gérer la requête Ajax et renvoyer les variables requises. Voici un exemple de code pour un simple fichier PHP getData.php :

PHP vs Ajax : solutions pour créer du contenu chargé dynamiquement PHP vs Ajax : solutions pour créer du contenu chargé dynamiquement Jun 06, 2024 pm 01:12 PM

Ajax (Asynchronous JavaScript et XML) permet d'ajouter du contenu dynamique sans recharger la page. En utilisant PHP et Ajax, vous pouvez charger dynamiquement une liste de produits : HTML crée une page avec un élément conteneur et la requête Ajax ajoute les données à l'élément après l'avoir chargé. JavaScript utilise Ajax pour envoyer une requête au serveur via XMLHttpRequest afin d'obtenir des données produit au format JSON à partir du serveur. PHP utilise MySQL pour interroger les données produit de la base de données et les encoder au format JSON. JavaScript analyse les données JSON et les affiche dans le conteneur de pages. Cliquer sur le bouton déclenche une requête Ajax pour charger la liste de produits.

Comment synchroniser le disque de synchronisation cloud Baidu Comment synchroniser le disque de synchronisation cloud Baidu Feb 23, 2024 pm 01:22 PM

Comment synchroniser Baidu Cloud Sync Disk ? Vous pouvez sélectionner les fichiers à synchroniser dans Baidu Cloud Sync Disk, mais la plupart des utilisateurs ne savent pas comment synchroniser les fichiers Baidu Cloud. Voici ensuite le didacticiel graphique de la méthode de synchronisation Baidu Cloud Sync Disk proposé par l'éditeur. pour les utilisateurs intéressés, venez jeter un oeil ! Comment synchroniser Baidu Cloud Sync Disk 1. Entrez d'abord sur le bureau de l'ordinateur, cliquez avec le bouton droit sur l'icône [Baidu Cloud Sync Disk] et sélectionnez [Paramètres] 2. Développez ensuite la fenêtre du service, passez à la page [Paramètres avancés] et cliquez sur ; [Sélectionner un dossier] ; 3. Enfin, passez à la page comme indiqué ci-dessous, vérifiez les fichiers qui doivent être synchronisés et cliquez sur [OK].

See all articles