浅析$.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 相关文章推荐
用jquery实现下拉菜单效果的代码
Jul 25 Javascript
jQuery+ajax实现无刷新级联菜单示例
May 21 Javascript
Bootstrap模仿起筷首页效果
May 09 Javascript
基于jQuery实现左侧菜单栏可折叠功能
Dec 27 Javascript
Ionic项目中Native Camera的使用方法
Jun 07 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
Jul 23 Javascript
Angular.js中$resource高大上的数据交互详解
Jul 30 Javascript
新手vue构建单页面应用实例代码
Sep 18 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
Oct 25 Javascript
用Cordova打包Vue项目的方法步骤
Feb 02 Javascript
React 并发功能体验(前端的并发模式)
Jul 01 Javascript
TypeScript 使用 Tuple Union 声明函数重载
Apr 07 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 图像函数大举例(非原创)
2009/06/20 PHP
php类常量的使用详解
2013/06/08 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
详解关于element级联选择器数据回显问题
2019/02/20 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
Python getopt模块处理命令行选项实例
2014/05/13 Python
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
python使用列表的最佳方案
2020/08/12 Python
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
超市重阳节活动方案
2014/02/10 职场文书
公司成本主管岗位责任制
2014/02/21 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
交心谈心活动总结
2015/05/11 职场文书
行政申诉状范文
2015/05/20 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python