常见问题当前位置:星鸿娱乐 > 常见问题 > >

星鸿娱乐注册:浅析$.getJSON异步请求和同步请求

  

[json异步请求]浅析$.getJSON异步请求和同步请求

  

先说一下我遇到的问题吧,我之前的一个函数想调用上一个函数的返回值,但是它的返回值一直为空,后来翻了一些资料才明白是异步请求在作怪,不多说,看例子,这是我之前有返回值函数的代码:  

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

后来发现打印的数组order 一直为空,以下是改正后的代码:  

  
  
  function get_no_order_array() {  var order_info = show_order();  var order = [];  $.ajaxSettings.async = false;//在执行之前加$.ajaxSettings.async = false;  (同步执行)  $.getJSON("../JSON/customers.json", function (date) { //$.getJSON不懂的话可以看一下我之前的博客,或是专门学习一下  “JSON”  
  
  
  
  date["man"].forEach(function (person) {  if (order_info.k_obj[person] == undefined) {  order.push(person);  }  })  });  $.ajaxSettings.async = true;//执行你的代码之后及时恢复为$.ajaxSettings.async = true; (异步执行)  return order;  }  
  
  

在循环之前加一个$.ajaxSettings.async = false; 表示同步执行,这样他就会按照顺序执行了。

  

  

同时执行多个$.getJSON() 数据混乱的问题的解决  

  

在执行之前加$.ajaxSettings.async = false; (同步执行)  

  

执行你的代码之后及时恢复为$.ajaxSettings.async = true; (异步执行)  

  

不然影响别的地方的需要异步执行的代码。

  

  

example:  

  
  
  $.ajaxSettings.async = false;  $.getJSON(url, data, function(data){ });  $.getJSON(url, data, function(data){ });  $.getJSON(url, data, function(data){ });  ......

星鸿娱乐

  $.ajaxSettings.async = true;

  
  

以上这篇浅析$.getJSON异步请求和同步请求就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

  

(责任编辑:admin)

上一篇:JavaScript中在光标处插入添加文本标签节点的详细

下一篇:2016年棋牌游戏行业的投资怎么样<一>

推荐内容

客户服务热线

400 888 8932

在线客服