先说一下我遇到的问题吧,我之前的一个函数想调用上一个函数的返回值,但是它的返回值一直为空,后来翻了一些资料才明白是异步请求在作怪,不多说,看例子,这是我之前有返回值函数的代码:
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) { //$.getJSON不懂的话可以看一下我之前的博客,或是专门学习一下 “JSON”
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异步请求和同步请求 同时执行多个$.getJSON() 数据混乱的问题的解决在执行之前加$.ajaxSettings.async = fals
下面小编就为大家带来一篇浅析$.getJSON异步请求和同步请求。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
二、$.ajax()参数解释 url: 发送请求的地址。 type: 请求方式(post或get)默认为get。 timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。 async:默认设置为true,所有请求均为异步请求。同
一般来说,使用Jquery中的$.ajax,$.post,$.getJSON,非常方便,但是有的时候,我们只因为需要ajax功能而引入Jquery比较不划算。 所以接下来便用原生JavaScrpit实现一个简单的Ajax请求,并说明ajax请求中的跨域访问...
一般来说,使用Jquery中的$.ajax,$.post,$.getJSON,非常方便,但是有的时候,我们只需要ajax功能,这样引入Jquery比较不划算。 所以接下来便用原生JavaScrpit实现一个简单的Ajax请求,并说明ajax请求中的跨域访问...
结合自己的项目经验,主要从以下几方面介绍:OkHttpClient基本参数配置介绍普通GET请求(同步/异步)普通POST请求(同步/异步)根据tag取消请求POST请求提交StringPOST请求提交流POST请求提交JSON(实体转JSON)POST...
代码中包含知识点:异步请求HTTP,GET,POST,PUT,DELETE,JSON序列化与反序列化
要查看高级抽象,见$.set、$.post等,这些方法更易于理解和使用。但是功能上有限制(例如,没有错误处理函数)。 警告:如果数据类型指定为"script",那么POST自动转化为GET方法。(因为script会作为一个嵌入页面的...
但angularjs中$http不支持同步的请求。 解决方法一: 代码如下: $http.get(‘url1’).success(function (d1) { $http.get(‘url2’).success(function (d2) { //处理逻辑 }); }); 解决方法二: then中的...
2.支持同步/异步请求。 3.支持表单提交,文件上传,自定义实体。 4.支持路径参数 5.支持gzip 6.支持本地的 Basic Authentication 7.自定义超时,并发级别和代理设置。 8.为每个请求自定义默认请求头。 9....
简单易用的高层实现见 $.get, $.post 等。 $.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。 注意: 如果你指定了 dataType 选项,请确保服务器...
在vue项目里面,需要循环发送ajax请求,出现的问题就是循环结束,第一次服务器还没返回,导致数据处理错误,需要使用同步请求 解决方案 目前没有发现axios可以同步请求,所以只能使用jQuery,配置同步请求; $.ajax...
支持HTTP/HTTPS,自动维持Cookie,异步/同步请求,大文件/多文件上传,文件下载;支持304缓存,302/303重定向,支持代理服务器。NoHttp特性:支持HTTP/HTTPS,自动维持Cookie,异步/同步请求,大文件/多文件上传,...
nocallback.js 不带回调的异步JS。... 在这里,您使用典型的jQuery get请求,但不提供任何回调! 用法 这里有两个主要概念:协程和诺言。 协程是一个将执行异步代码的函数,该函数包装在nocallback.js
本资源是一个封装类,采用异步方式解决了Wininet不能设置超时的问题,当前异步采用C++...MFC程序中通过HttpGet和HttpPost方式向WebService发送请求,WebService以Json的方式返回数据,MFC程序解析Json,得到指定数据。
代码如下:$.ajax({ async: true, // 默认true(异步请求) cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。 type: “POST”, // 默认:GET 请求方式:[POST/GET] dataType: “xml”, //...
支持同步/异步请求 支持异步延迟执行 支持Post/Get/Put/Delete请求 支持Cookie持久化,支持Gzip压缩 支持协议头参数Head设置 支持二进制参数、JSON、表单提交、SOAP提交 支持Gson解析、Unicode自动转码、请求参数...
非常简单,采用HttpService封装,不用依赖BlazeDS,采用JSON数据格式(如果想用XML改造一下即可),可采用GET、POST两种方式与Java、.NET等服务端通信。