ajax回撥函式執行順序帶來的同步非同步問題
我們來看這樣一段程式碼:
$(function(){
var a =0;
$.getJSON(
"student_toadd",
{stunum:10},
$.each(status,function(i){
........................
a=10;
.............................
});
)
alert(a);
});
你說說看彈出的a是多少?我說:有可能是10,有可能是0。
為毛?
因為ajax的執行是非同步的,有可能回撥函式還沒有拿到返回值,就彈出a了。
解決辦法
var a = 0;
$.ajax({
type: "get",
dataType: "json",
async: false // 非同步為false
url: "student_toadd",
data:{stunum:10},
success:function(data){ a = 10;}
});
alert(a);
這表示,將$.ajax拿到返回值後,在執行後面的js。
這樣a就是10了。
相關文章
- JavaScript同步、非同步、回撥執行順序之經典閉包setTimeout面試題分析JavaScript非同步面試題
- ajax非同步導致js方法順序執行不了非同步JS
- java回撥函式-非同步回撥-簡明講解Java函式非同步
- jQuery同步Ajax帶來的UI執行緒阻塞問題及解決辦法jQueryUI執行緒
- 回撥蛋糕 —— cake下順序執行命令
- GROUPBY 和開窗函式執行順序的問題函式
- 同步任務與非同步任務執行順序非同步
- 九句話輕鬆理解執行緒與非同步以及回撥函式執行緒非同步函式
- ajax--實現非同步請求,接受響應及執行回撥非同步
- Python 中的程式、執行緒、協程、同步、非同步、回撥Python執行緒非同步
- arcgis api for js回撥函式如何等待同步APIJS函式
- JavaScript 非同步操作裡的巢狀回撥函式JavaScript非同步巢狀函式
- js解惑-函式執行順序JS函式
- 非同步/回撥非同步
- ajax 下載Excel 新增回撥函式Excel函式
- JS 非同步發展流程(回撥函式=>Async/await)JS非同步函式AI
- C++屌屌的觀察者模式-同步回撥和非同步回撥C++模式非同步
- JS 非同步執行順序 -- 從一道面試題說起JS非同步面試題
- 類script標籤,非同步載入,順序執行非同步
- promise、async、await非同步原理與執行順序PromiseAI非同步
- 什麼是 JavaScript 裡的非同步操作和回撥函式JavaScript非同步函式
- 一個回撥函式不能操作Qt主執行緒設定Gui的問題函式QT執行緒GUI
- WCF中的非同步回撥非同步
- Javascript的非同步和回撥JavaScript非同步
- jquery ajax 回撥函式的值alert出來[object Object] 解決方法jQuery函式Object
- 關於defer執行順序問題
- 用Promise建構函式來解決地獄回撥問題Promise函式
- sql中的or與and的執行順序問題SQL
- 多執行緒下的程式同步(執行緒同步問題總結篇)執行緒
- 同名函式的 帶 params 引數 與 不帶 params 引數的執行優先順序函式
- 前端筆記之JavaScript(九)定時器&JSON&同步非同步/回撥函式&函式節流&call/apply前端筆記JavaScript定時器JSON非同步函式APP
- jQuery ajax的執行順序簡單介紹jQuery
- 執行緒回撥函式形參不能用引用執行緒函式
- SQL語句中的AND和OR執行順序問題SQL
- 回撥函式函式
- Node 執行順序 nextTick 非同步IO setTimeout setImmediate非同步
- 【設計模式】非同步阻塞、非同步回撥模式設計模式非同步
- C語言 非同步回撥C語言非同步