浅析$.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 非图片动态loading效果实现代码
Apr 09 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
Apr 27 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
Apr 02 Javascript
JavaScript正则表达式之multiline属性的应用
Jun 16 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
Oct 29 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
Jan 27 Javascript
微信小程序 自己制作小组件实例详解
Dec 22 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 jQuery
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
Jan 16 Javascript
angular实现页面打印局部功能的思考与方法
Apr 13 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
Feb 13 Javascript
JavaScript中常用的简洁高级技巧总结
Mar 10 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/08/26 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
js实现返回顶部效果
2017/03/10 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
python 字符串格式化代码
2013/03/17 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
python实现redis三种cas事务操作
2017/12/19 Python
django创建简单的页面响应实例教程
2019/09/06 Python
Python requests获取网页常用方法解析
2020/02/20 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
西班牙在线光学:Visual-Click
2020/06/22 全球购物
基于Python 函数和方法的区别说明
2021/03/24 Python
十八届三中全会报告学习材料
2014/02/17 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
消防验收申请报告
2015/05/15 职场文书
党支部考察鉴定意见
2015/06/02 职场文书
2016年村党支部公开承诺书
2016/03/24 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
六年级作文之关于梦
2019/10/22 职场文书
详解python的内存分配机制
2021/05/10 Python