Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée des exemples d'utilisation de requêtes asynchrones et synchrones $.getJSON

伊谢尔伦
Libérer: 2017-07-21 14:56:33
original
2008 Les gens l'ont consulté

Une fonction précédente voulait appeler la valeur de retour de la fonction précédente, mais sa valeur de retour était toujours vide. Plus tard, après avoir parcouru certaines informations, j'ai réalisé que les requêtes asynchrones causaient des problèmes. Je n'y vais pas. dans les détails, mais regardez l'exemple :


function get_no_order_array() { 
  var order_info = show_order(); 
  var order = []; 
  
  $.getJSON("../JSON/customers.json", function (date) { 
 
    date["man"].forEach(function (person) { 
      if (order_info.k_obj[person] == undefined) { 
        order.push(person); 
      } 
    }) 
  }); 
 
  return order; 
}
Copier après la connexion

Plus tard, j'ai découvert que l'ordre du tableau imprimé était toujours vide. Ce qui suit est corrigé. code :


function get_no_order_array() { 
  var order_info = show_order(); 
  var order = []; 
  $.ajaxSettings.async = false;//在执行之前加$.ajaxSettings.async = false;  (同步执行) 
  $.getJSON("../JSON/customers.json", function (date) { //<span style="line-height: 1.5;">$.getJSON不懂的话可以看一下我之前的博客,或是专门学习一下  “JSON”</span>
Copier après la connexion


date["man"].forEach(function (person) { 
      if (order_info.k_obj[person] == undefined) { 
        order.push(person); 
      } 
    }) 
  }); 
  $.ajaxSettings.async = true;//执行你的代码之后及时恢复为$.ajaxSettings.async = true; (异步执行) 
  return order; 
}
Copier après la connexion

Ajoutez $.ajaxSettings.async = false avant la boucle pour indiquer une exécution synchrone, donc ; qu'il sera exécuté dans l'ordre.

Solution au problème de confusion des données provoquée par l'exécution de plusieurs $.getJSON() en même temps

Ajouter $.ajaxSettings.async = false avant l'exécution (exécution synchrone)

Exécution Votre code sera restauré à $.ajaxSettings.async = true dans le temps; (exécution asynchrone)

Sinon, cela affectera le code à d'autres endroits qui doit être exécuté de manière asynchrone.


$.ajaxSettings.async = false;

$.getJSON(url, data, function(data){ });

$.getJSON(url, data, function(data){ });

$.getJSON(url, data, function(data){ });

......

$.ajaxSettings.async = true;
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal