浅析$.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椭圆旋转相册实现代码
Jan 16 Javascript
页面使用密码保护代码
Apr 10 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
Apr 12 Javascript
angular.bind使用心得
Oct 26 Javascript
微信小程序自定义组件
Aug 16 Javascript
微信小程序progress组件使用详解
Jan 31 Javascript
vue实现简单的日历效果
Sep 24 Javascript
微信小程序实现签字功能
Dec 23 Javascript
ES6 Generator基本使用方法示例
Jun 06 Javascript
jQuery实现飞机大战小游戏
Jul 05 jQuery
vue项目查看vue版本及cli版本的实现方式
Oct 24 Javascript
详解JavaScript中的this指向问题
Feb 05 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
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
php中目录,文件操作详谈
2007/03/19 PHP
深入PHP运行环境配置的详解
2013/06/04 PHP
php中调用其他系统http接口的方法说明
2014/02/28 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
Ext 今日学习总结
2010/09/19 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
小米5s微信跳一跳小程序python源码
2018/01/08 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
年会活动策划方案
2014/01/23 职场文书
工程专业应届生求职信
2014/02/19 职场文书
供应链金融服务方案
2014/05/25 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
户籍证明书标准模板
2014/09/10 职场文书
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
班委竞选稿范文
2015/11/21 职场文书
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server
Django框架中视图的用法
2022/06/10 Python