浅析$.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 相关文章推荐
JQuery中$之选择器用法介绍
Apr 05 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
Oct 10 Javascript
js如何判断用户是在PC端和还是移动端访问
Apr 24 Javascript
用js读、写、删除Cookie代码续篇
Dec 03 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
Jan 13 Javascript
JavaScript使用cookie记录临时访客信息的方法
Apr 07 Javascript
深入理解JS DOM事件机制
Aug 06 Javascript
微信小程序实现刷脸登录
May 25 Javascript
js字符串处理之绝妙的代码
Apr 05 Javascript
微信小程序云开发实现增删改查功能
May 17 Javascript
Js代码中的span拼接问题解决
Nov 22 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 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
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
php Smarty初体验二 获取配置信息
2011/08/08 PHP
PHP获取页面执行时间的方法(推荐)
2016/12/10 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
JavaScript中document.forms[0]与getElementByName区别
2015/01/21 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
Vue表单验证插件的制作过程
2017/04/01 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
Python遍历目录的4种方法实例介绍
2015/04/13 Python
深入理解NumPy简明教程---数组1
2016/12/17 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
详解python解压压缩包的五种方法
2019/07/05 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
安全教育心得体会
2013/12/29 职场文书
数学系毕业生的自我评价
2014/01/10 职场文书
优秀学生获奖感言
2014/02/15 职场文书
英语求职信范文
2014/05/23 职场文书
文明礼仪标语
2014/06/13 职场文书
开票员岗位职责
2015/02/12 职场文书
股东大会通知
2015/04/24 职场文书
如何用JavaScipt测网速
2021/05/09 Javascript
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript