淺析$.getJSON異步請(qǐng)求和同步請(qǐng)求
先說(shuō)一下我遇到的問(wèn)題吧,我之前的一個(gè)函數(shù)想調(diào)用上一個(gè)函數(shù)的返回值,但是它的返回值一直為空,后來(lái)翻了一些資料才明白是異步請(qǐng)求在作怪,不多說(shuō),看例子,這是我之前有返回值函數(shù)的代碼:
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; }
后來(lái)發(fā)現(xiàn)打印的數(shù)組order 一直為空,以下是改正后的代碼:
function get_no_order_array() { var order_info = show_order(); var order = []; $.ajaxSettings.async = false;//在執(zhí)行之前加$.ajaxSettings.async = false; (同步執(zhí)行) $.getJSON("../JSON/customers.json", function (date) { //<span style="line-height: 1.5;">$.getJSON不懂的話可以看一下我之前的博客,或是專門(mén)學(xué)習(xí)一下 “JSON”</span>
date["man"].forEach(function (person) { if (order_info.k_obj[person] == undefined) { order.push(person); } }) }); $.ajaxSettings.async = true;//執(zhí)行你的代碼之后及時(shí)恢復(fù)為$.ajaxSettings.async = true; (異步執(zhí)行) return order; }
在循環(huán)之前加一個(gè)$.ajaxSettings.async = false; 表示同步執(zhí)行,這樣他就會(huì)按照順序執(zhí)行了。
同時(shí)執(zhí)行多個(gè)$.getJSON() 數(shù)據(jù)混亂的問(wèn)題的解決
在執(zhí)行之前加$.ajaxSettings.async = false; (同步執(zhí)行)
執(zhí)行你的代碼之后及時(shí)恢復(fù)為$.ajaxSettings.async = true; (異步執(zhí)行)
不然影響別的地方的需要異步執(zhí)行的代碼。
example:
$.ajaxSettings.async = false; $.getJSON(url, data, function(data){ }); $.getJSON(url, data, function(data){ }); $.getJSON(url, data, function(data){ }); ...... $.ajaxSettings.async = true;
以上這篇淺析$.getJSON異步請(qǐng)求和同步請(qǐng)求就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 使用getJSON()異步請(qǐng)求服務(wù)器返回json格式數(shù)據(jù)的實(shí)現(xiàn)
- 詳解Vuejs2.0之異步跨域請(qǐng)求
- 使用bootstrap-paginator.js 分頁(yè)來(lái)進(jìn)行ajax 異步分頁(yè)請(qǐng)求示例
- AngularJS出現(xiàn)$http異步后臺(tái)無(wú)法獲取請(qǐng)求參數(shù)問(wèn)題的解決方法
- 淺談js的ajax的異步和同步請(qǐng)求的問(wèn)題
- SpringMVC環(huán)境下實(shí)現(xiàn)的Ajax異步請(qǐng)求JSON格式數(shù)據(jù)
- Ajax異步請(qǐng)求JSon數(shù)據(jù)(圖文詳解)
- angularjs 處理多個(gè)異步請(qǐng)求方法匯總
- jquery的ajax異步請(qǐng)求接收返回json數(shù)據(jù)實(shí)例
- 原生JS發(fā)送異步數(shù)據(jù)請(qǐng)求
相關(guān)文章
js實(shí)現(xiàn)全國(guó)省份城市級(jí)聯(lián)下拉菜單效果代碼
這篇文章主要介紹了js實(shí)現(xiàn)全國(guó)省份城市級(jí)聯(lián)下拉菜單效果代碼,通過(guò)JavaScript針對(duì)數(shù)組的定義與元素的遍歷實(shí)現(xiàn)省市級(jí)聯(lián)菜單功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-09-09javascript判斷非數(shù)字的簡(jiǎn)單例子
這篇文章介紹了javascript判斷非數(shù)字的簡(jiǎn)單例子,有需要的朋友可以參考一下2013-07-07JS基于FileSaver.js插件實(shí)現(xiàn)文件保存功能示例
這篇文章主要介紹了JS基于FileSaver.js插件實(shí)現(xiàn)文件保存功能,結(jié)合實(shí)例形式演示了FileSaver.js插件的具體使用技巧,需要的朋友可以參考下2016-12-12