浅析$.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 相关文章推荐
类之Prototype.js学习
Jun 13 Javascript
js实现连个数字相加而不是拼接的方法
Feb 23 Javascript
使用console进行性能测试
Apr 27 Javascript
JS组件Bootstrap Select2使用方法详解
Apr 17 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
Mar 06 Javascript
ionic中列表项增加和删除的实现方法
Jan 22 Javascript
jQuery validate 验证radio实例
Mar 01 Javascript
详解Node中导入模块require和import的区别
Aug 11 Javascript
简单了解node npm cnpm的具体使用方法
Feb 27 Javascript
基于js实现抽红包并分配代码实例
Sep 19 Javascript
JS Ajax请求会话过期处理问题解决方法分析
Nov 16 Javascript
JS寄快递地址智能解析的实现代码
Jul 16 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/08/18 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
php若干单维数组遍历方法的比较
2011/09/20 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
优化javascript的执行速度
2010/01/23 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
2020/06/01 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
2020/06/17 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
[51:34]Ti4主赛事胜者组 DK vs EG 2
2014/07/19 DOTA
Python的面向对象思想分析
2015/01/14 Python
利用Python如何生成随机密码
2016/04/20 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
快速了解Python开发环境Spyder
2020/06/29 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
求职信格式范本
2013/11/15 职场文书
上课说话检讨书
2015/01/27 职场文书
努力学习保证书
2015/02/26 职场文书
公诉意见书范文
2015/06/05 职场文书
寒假致家长的一封信
2015/10/10 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫
python中filter,map,reduce的作用
2022/06/10 Python