浅析$.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 相关文章推荐
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
Jan 09 Javascript
JQuery触发radio或checkbox的change事件
Dec 18 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
Aug 30 Javascript
jquery的clone方法应用于textarea和select的bug修复
Jun 26 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
May 12 Javascript
Yarn的安装与使用详细介绍
Oct 25 Javascript
Node.js中用D3.js的方法示例
Jan 16 Javascript
bootstrap实现动态进度条效果
Mar 08 Javascript
微信小程序 自定义消息提示框
Aug 06 Javascript
angularJs 表格添加删除修改查询方法
Feb 27 Javascript
laypage.js分页插件使用方法详解
Jul 27 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
Mar 23 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
我的php学习笔记(毕业设计)
2012/02/21 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
JavaScript版代码高亮
2006/06/26 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
小程序自定义日历效果
2018/12/29 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
js实现蒙版效果
2020/01/11 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
python调用windows api锁定计算机示例
2014/04/17 Python
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
Python实现抓取网页并且解析的实例
2014/09/20 Python
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
期末考试动员演讲稿
2014/01/10 职场文书
党员公开承诺书内容
2014/05/20 职场文书
党员服务承诺书
2014/05/28 职场文书
老干部工作先进事迹
2014/08/17 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis