浅析$.getJSON异步请求和同步请求


Posted in Javascript onJune 06, 2016

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

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) { //<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; 
}

在循环之前加一个$.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异步请求和同步请求就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 动态table添加colspan\rowspan 参数的方法
Jul 25 Javascript
纯js实现手风琴效果
Apr 17 Javascript
js简单倒计时实现代码
Apr 30 Javascript
深入理解Angular2 模板语法
Aug 07 Javascript
详解AngularJS 模块化
Jun 14 Javascript
简单谈谈React中的路由系统
Jul 25 Javascript
浅谈gulp创建完整的项目流程
Dec 20 Javascript
vue自定义指令用法经典实例小结
Mar 16 Javascript
Vue.js组件通信之自定义事件详解
Oct 19 Javascript
easyUI 实现的后台分页与前台显示功能示例
Jun 01 Javascript
javascript实现智能手环时间显示
Sep 18 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
Feb 08 Javascript
使用RequireJS库加载JavaScript模块的实例教程
Jun 06 #Javascript
ionic 上拉菜单(ActionSheet)实例代码
Jun 06 #Javascript
深入理解JavaScript 函数
Jun 06 #Javascript
Node.js的Web模板引擎ejs的入门使用教程
Jun 06 #Javascript
javascript url几种编码方式详解
Jun 06 #Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
Jun 06 #Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
Jun 06 #Javascript
You might like
PHP define函数的使用说明
2008/08/27 PHP
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
js实现的在本地预览图片功能示例
2019/11/09 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
python里 super类的工作原理详解
2019/06/19 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
野兽派官方旗舰店:THE BEAST 野兽派
2016/08/05 全球购物
一套PHP的笔试题
2013/05/31 面试题
酒店销售经理岗位职责
2014/01/31 职场文书
翻译学院毕业生自荐书
2014/02/02 职场文书
秋季运动会广播稿
2014/02/22 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
土建施工员岗位职责
2015/04/11 职场文书
长征观后感
2015/06/09 职场文书
宝宝满月祝酒词
2015/08/10 职场文书