浅析$.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 相关文章推荐
Extjs4 GridPanel 的几种样式使用介绍
Apr 18 Javascript
js借助ActiveXObject实现创建文件
Sep 29 Javascript
JavaScript使用replace函数替换字符串的方法
Apr 06 Javascript
在Ubuntu系统上安装Node.JS的教程
Oct 15 Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 Javascript
vue2笔记 — vue-router路由懒加载的实现
Mar 03 Javascript
ES6扩展运算符的用途实例详解
Aug 20 Javascript
5 种JavaScript编码规范
Jan 30 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
Jul 29 Javascript
为react组件库添加typescript类型提示的方法
Jun 15 Javascript
Jquery Fade用法详解
Nov 06 jQuery
浅谈JS的原型和原型链
Jun 04 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的ob_start();控制您的浏览器cache!
2007/02/14 PHP
php5中类的学习
2008/03/28 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
四个PHP非常实用的功能
2015/09/29 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
jQuery 前的按键判断代码
2010/03/19 Javascript
js中匿名函数的N种写法
2010/09/08 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
2013/09/05 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
原生js实现数字字母混合验证码的简单实例
2015/12/10 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
numpy自动生成数组详解
2017/12/15 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
司法助理专业自荐书
2014/06/13 职场文书
武当山导游词
2015/02/03 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js