浅析$.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调用webservice中的方法实现思路及代码
Feb 25 Javascript
Checbox的操作含已选、未选及判断代码
Nov 07 Javascript
Jquery validation remote 验证的缓存问题解决方法
Mar 25 Javascript
一个支付页面DEMO附截图
Jul 22 Javascript
使用mouse事件实现简单的鼠标经过特效
Jan 30 Javascript
javascript绘制漂亮的心型线效果完整实例
Feb 02 Javascript
JS+Canvas绘制时钟效果
Aug 20 Javascript
JS调用打印机功能简单示例
Nov 28 Javascript
JS插件plupload.js实现多图上传并显示进度条
Nov 29 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
Sep 27 Javascript
js实现简易点击切换显示或隐藏
Nov 29 Javascript
Vue实现省市区三级联动
Dec 27 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
php中大括号作用介绍
2012/03/22 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
浅谈Vue SPA 首屏加载优化实践
2017/12/15 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
Javascript如何实现扩充基本类型
2020/08/26 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
Python多进程机制实例详解
2015/07/02 Python
python中异常报错处理方法汇总
2016/11/20 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
Python冲顶大会 快来答题!
2018/01/17 Python
python读取文件名称生成list的方法
2018/04/27 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
shallow copy和deep copy的区别
2016/05/09 面试题
C#可否对内存进行直接的操作
2015/02/26 面试题
pycharm无法导入lxml的解决办法
2021/03/31 Python
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang