Heim  >  Artikel  >  Web-Frontend  >  Ausführliche Erläuterung von Anwendungsbeispielen für asynchrone und synchrone $.getJSON-Anfragen

Ausführliche Erläuterung von Anwendungsbeispielen für asynchrone und synchrone $.getJSON-Anfragen

伊谢尔伦
伊谢尔伦Original
2017-07-21 14:56:332023Durchsuche

Eine frühere Funktion wollte den Rückgabewert der vorherigen Funktion aufrufen, aber ihr Rückgabewert war immer leer. Nachdem ich einige Informationen durchgesehen hatte, wurde mir klar, dass asynchrone Anforderungen keine Probleme verursachten Gehen Sie ins Detail, schauen Sie sich aber das Beispiel an:


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; 
}

Später stellte ich fest, dass die gedruckte Array-Reihenfolge immer leer war. Das Folgende ist die Korrektur 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>


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

Fügen Sie $.ajaxSettings.async = false vor der Schleife hinzu, um die synchrone Ausführung anzuzeigen dass es ordnungsgemäß ausgeführt wird.

Lösung für das Problem der Datenverwirrung, die durch die gleichzeitige Ausführung mehrerer $.getJSON() verursacht wird

Fügen Sie $.ajaxSettings.async = false vor der Ausführung hinzu (synchrone Ausführung)

Ausführung Ihr Code wird rechtzeitig auf $.ajaxSettings.async = true zurückgesetzt (asynchrone Ausführung)

Andernfalls wirkt sich dies auf den Code an anderen Stellen aus, der asynchron ausgeführt werden muss.


$.ajaxSettings.async = false;

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

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

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

......

$.ajaxSettings.async = true;

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Anwendungsbeispielen für asynchrone und synchrone $.getJSON-Anfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn