浅析$.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实现预览待上传的本地图片
Mar 15 Javascript
JavaScript调用Activex控件的事件的实现方法
Apr 11 Javascript
js简单实现标签云效果实例
Aug 06 Javascript
jquery实现可关闭的倒计时广告特效代码
Sep 02 Javascript
jQuery原理系列-常用Dom操作详解
Jun 07 Javascript
AngularJS实现的简单拖拽功能示例
Jan 02 Javascript
js实现鼠标单击Tab表单切换效果
May 16 Javascript
vue实现div拖拽互换位置
Jul 29 Javascript
js实现随机8位验证码
Jul 24 Javascript
vue+layui实现select动态加载后台数据的例子
Sep 20 Javascript
微信小程序停止其他视频播放当前视频的实例代码
Dec 25 Javascript
详细介绍Next.js脚手架完整搭建封装
Apr 26 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的日期与时间函数技巧
2008/04/24 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
如何让页面加载完成后执行js
2013/06/26 Javascript
JavaScript拆分字符串时产生空字符的解决方案
2014/09/26 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
node.js中watch机制详解
2014/11/17 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
Python 登录网站详解及实例
2017/04/11 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
培训楼经理岗位责任制
2014/02/10 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
《金子》教学反思
2014/04/13 职场文书
学校与家长安全责任书
2014/07/23 职场文书
自主招生自荐信格式
2015/03/04 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技