浅析$.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 相关文章推荐
Extjs学习笔记之一 初识Extjs之MessageBox
Jan 07 Javascript
Jquery拖拽并简单保存的实现代码
Nov 28 Javascript
js数组操作学习总结
Nov 04 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
Apr 30 Javascript
详解JavaScript数组的操作大全
Oct 19 Javascript
详解JavaScript中Hash Map映射结构的实现
May 21 Javascript
angularjs 表单密码验证自定义指令实现代码
Oct 27 Javascript
js初始化验证实例详解
Nov 26 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
Jan 03 Javascript
浅析Node.js非对称加密方法
Jan 29 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
Nov 04 Javascript
JavaScript仿京东轮播图效果
Feb 25 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
Yii学习总结之安装配置
2015/02/22 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
2020/11/12 Javascript
python标准日志模块logging的使用方法
2013/11/01 Python
编程语言Python的发展史
2014/09/26 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
硕士研究生自我鉴定范文
2013/12/27 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
退税申请报告怎么写
2015/05/18 职场文书
同学联谊会邀请函
2019/06/24 职场文书
导游词之吉林花园山
2019/10/17 职场文书
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫