时间:2021-05-18
先说一下我遇到的问题吧,我之前的一个函数想调用上一个函数的返回值,但是它的返回值一直为空,后来翻了一些资料才明白是异步请求在作怪,不多说,看例子,这是我之前有返回值函数的代码:
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异步请求和同步请求就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
初次使用$.ajax(),我没有去区分过ajax的异步请求和同步请求的不同,刚开始使用同步请求,以至后来出现许多问题,特别在体验度方面。异步和同步:同步意味着执
OkHttp除了支持常用的同步HTTP请求之外,还支持异步HTTP请求调用。在使用同步调用时,当前线程会被阻塞,直到HTTP请求完成。当同时发出多个HTTP请求
(默认:true)默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才
jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当J
数据的异步请求和接收。综合显示网页具有同时显示多种气象要素数据的功能,因此,实现网页向服务器异步发送请求和接收数据将变得十分必要。实现异步后,网页中每个模块的数