浅析$.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实现自定义标签
May 08 Javascript
JS 无限级 Select效果实现代码(json格式)
Aug 30 Javascript
JavaScript基础知识之数据类型
Aug 06 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
Oct 22 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
May 08 Javascript
javascript实现单击和双击并存的方法
Dec 13 Javascript
JS实现样式清新的横排下拉菜单效果
Oct 09 Javascript
微信小程序 生命周期详解
Oct 12 Javascript
前端分页功能的实现以及原理(jQuery)
Jan 22 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
Jul 19 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
Jan 12 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
Feb 12 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
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
php中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
phpStorm2020 注册码
2020/09/17 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
JavaScript 学习点滴记录
2009/04/24 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
通过Pandas读取大文件的实例
2018/06/07 Python
浅谈Python traceback的优雅处理
2018/08/31 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
linux面试题参考答案(1)
2016/01/22 面试题
爱国卫生月实施方案
2014/02/21 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
趣味运动会赞词
2015/07/22 职场文书
2016国培研修心得体会
2016/01/08 职场文书
学习nginx基础知识
2021/09/04 Servers
Oracle 死锁的检测查询及处理
2021/09/25 Oracle
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技