表格輸入時, 想即時檢查資料庫有没有相同記錄時,不用多問大家都會選用 Ajax 。
佢可以令你行 JavaScript 時不會因 loading 停頓,又不用重新整理頁面
, 迅捷回應
, 對用家影響不大,用家可以繼續自己的工作。
但今日我先發現自己一點也不明白他……
之前我一直覺得 Ajax 懂得從資料庫取得答案再回覆已經達到同步,原來是錯得非常離譜。其實由Ajax全名 (Asynchronous JavaScript and XML) 已經清楚說明了他是非同步的技術.
就因為這個誤解 , 浪費了大部分時間在同一段 code 轉圈圈
只想替幫表格加句 Ajax 做 checking 時,邏輯上我没有問題
, 檢查 Ajax
, output都没有發現出錯, 為什麼我想要的答案總是錯
? 最後要麻煩到師父幫忙
一步步翻查
, 才發現原來我那段 Ajax 還未行完
, result 還未出
, 我最尾的 Jquery 已經行完顯示結果
, 令我 Ajax 結果無論如何
, 佢都永遠都正確
。 那我段 code 不就是廢了嗎?
由於AJAX 預設都是 非同步模式 (Asynchronous) 所以必須把 Asynchronous 設為 false (就是同步 Synchronous)
$().ready( function(){
$.ajaxSetup({
cache:false,
async:false
});
});
這句解釋就是等AJAX 有了返回值才會執行下面的 JS (((我的問題就解決了!!!