Maison  >  Article  >  interface Web  >  Explication détaillée de la synchronisation ajax asynchrone et de l'asynchronisme dans jQuery_jquery

Explication détaillée de la synchronisation ajax asynchrone et de l'asynchronisme dans jQuery_jquery

WBOY
WBOYoriginal
2016-05-16 15:37:351402parcourir

Il existe une telle exigence dans le projet, utilisez ajax pour charger des données, renvoyez la page et attribuez une valeur, puis supprimez la valeur sur le front-end

Cela implique l'ordre du code. Parfois, l'arrière-plan n'a pas renvoyé les données, mais le code suivant a été exécuté

.

La valeur ne peut donc pas être obtenue

$.ajax({ type: "post",  url: "admin/PfmOptionRuleItem.do", success: function(data){  $("#ruleItem").val(data.ruleItem); //① } }); return $("#ruleItem").val(); //②

Si ① n'a pas renvoyé de données de l'arrière-plan, la valeur ne peut pas être obtenue si ② est exécuté à ce moment

La première lettre d'Ajax est la première lettre d'asynchrone, ce qui signifie que toutes les opérations sont parallèles et que l'ordre d'achèvement n'a aucun rapport.

Le paramètre async de $.ajax() est toujours défini sur true, ce qui indique qu'un autre code peut encore être exécuté après le démarrage de la requête.

Si cette option est définie sur false, cela signifie que toutes les requêtes ne sont plus asynchrones, ce qui entraînera également un blocage du navigateur.

Bien que le responsable ne recommande pas de le faire, vous ne pouvez tout simplement pas trop l'utiliser, sinon cela entraînerait une mauvaise expérience utilisateur

Donnez-moi une châtaigne

alert("setp 1"); $.ajax({  url: "admin/PfmOptionRuleItem.do",  async: false,  success: function(data){   alert("hello ajax"); //①  } }); alert("setp 2"); //②

Lorsque asyn est défini sur false, la requête ajax est synchronisée, c'est-à-dire qu'après que le bloc ajax envoie la requête à ce moment-là,

Il attendra en ① et n'exécutera pas ② tant que ① ne sera pas terminé

À l'heure actuelle, l'ordre d'exécution est

série 1

Bonjour Ajax

série 2

Si async est vrai, l'ordre d'exécution est

série 1

série 2

Bonjour Ajax

À propos de la synchronisation asynchrone et de l'asynchronisme ajax dans jQuery décrites dans cet article, je les ai toutes présentées, j'espère que cela sera utile à tout le monde.

Déclaration:
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