浅析$.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 相关文章推荐
javascript使用location.search的示例
Nov 05 Javascript
javascript得到当前页的来路即前一页地址的方法
Feb 18 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
Jun 10 Javascript
基于javascript简单实现对身份证校验
Jan 25 Javascript
Node.js 日志处理模块log4js
Aug 28 Javascript
js图片切换具体实现代码
Oct 13 Javascript
使用Ajax与服务器(JSON)通信实例
Nov 04 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
Oct 26 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
Apr 13 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
May 29 Javascript
vue组件命名和props命名代码详解
Sep 01 Javascript
js+css3实现简单时钟特效
Sep 13 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
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
2020/03/20 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
浅谈PHP中的
2016/04/23 PHP
JavaScript实现大数的运算
2014/11/24 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
bootstrap fileinput 上传插件的基础使用
2017/02/17 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
Python使用装饰器进行django开发实例代码
2018/02/06 Python
如何用python整理附件
2018/05/13 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
Python 日期区间处理 (本周本月上周上月...)
2019/08/08 Python
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
C语言笔试题
2014/09/04 面试题
自动化毕业生专业自荐书范文
2014/02/04 职场文书
小班秋游活动方案
2014/02/22 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
离婚协议书格式
2014/11/21 职场文书
护理专业自荐信范文
2015/03/06 职场文书
入党转正介绍人意见
2015/06/03 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
MySQL 数据 data 基本操作
2022/05/04 MySQL