浅析$.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学习网址备忘
May 29 Javascript
关于JavaScript的with 语句的使用方法
May 09 Javascript
关于图片的预加载过程中隐藏未知的
Dec 19 Javascript
对new functionName()定义一个函数的理解
May 22 Javascript
基于javascript实现根据身份证号码识别性别和年龄
Jan 22 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
Apr 27 Javascript
jQuery无刷新上传之uploadify3.1简单使用
Jun 18 Javascript
jQuery实现的瀑布流加载效果示例
Sep 13 Javascript
jQuery内容筛选选择器实例代码
Feb 06 Javascript
原生javascript实现的全屏滚动功能示例
Sep 19 Javascript
vue父组件向子组件传递多个数据的实例
Mar 01 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
Aug 03 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
如何开发一个虚拟域名系统
2006/10/09 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
[原创]图片分页查看
2006/08/28 Javascript
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
javascript 常用关键字列表集合
2007/12/04 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
canvas的神奇用法
2017/02/03 Javascript
详解redux异步操作实践
2018/08/15 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
Python常见的pandas用法demo示例
2019/03/16 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
Python any()函数的使用方法
2019/10/28 Python
python 星号(*)的多种用途
2020/09/21 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
英国最大的百货公司:Harrods
2016/08/18 全球购物
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
任课老师推荐信范文
2013/11/24 职场文书
自荐信写法介绍
2014/01/25 职场文书
销售会议开幕词
2015/01/28 职场文书
具结保证书范本
2015/05/11 职场文书
个人收入证明范本
2015/06/12 职场文书
使用springMVC所需要的pom配置
2021/09/15 Java/Android