浅析$.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 相关文章推荐
js clearInterval()方法的定义和用法
Nov 11 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
Sep 29 Javascript
JavaScript实现水平进度条拖拽效果
Jan 18 Javascript
jQuery实现文档树效果
Feb 20 Javascript
jQuery实现的五星点评功能【案例】
Feb 18 jQuery
VueJs里利用CryptoJs实现加密及解密的方法示例
Apr 29 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
May 07 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 jQuery
vue3.0 的 Composition API 的使用示例
Oct 26 Javascript
JavaScript实现无限轮播效果
Nov 19 Javascript
vue-router定义元信息meta操作
Dec 07 Vue.js
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
使用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
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
JS简单的轮播的图片滚动实例
2013/06/17 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
2018/02/23 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
python 实时遍历日志文件
2016/04/12 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
对python调用RPC接口的实例详解
2019/01/03 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
python计算二维矩形IOU实例
2020/01/18 Python
如何基于python实现归一化处理
2020/01/20 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
python re.match()用法相关示例
2021/01/27 Python
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
教育科学研究生自荐信
2013/10/09 职场文书
人事主管的岗位职责
2013/11/16 职场文书
小学数学教研活动总结
2014/07/01 职场文书
医院党员公开承诺书
2014/08/30 职场文书
政府领导干部个人对照检查材料思想汇报
2014/09/24 职场文书
2014年建筑工作总结
2014/11/26 职场文书
医院合作意向书范本
2015/05/08 职场文书
博物馆观后感
2015/06/05 职场文书
入党后的感想
2015/08/10 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
python中取整数的几种方法
2021/11/07 Python