看板 Ajax 關於我們 聯絡資訊
大致情況是如此 因為是寫PHP開始的 所以javascript的詳細運作並不是非常的清晰 分享一下我這次測試的情況是如此的 <script> $(document).ready(function(){ var highchartsoption={...略...}; $.post("wang_ajax.php", { name:'A', }, function(data,status){ alert(data);------>這出來的值會是正確的 var tags = $.parseJSON(data); highchartsoption.xAxis.categories=tags; }); alert(highchartsoption.xAxis.categories);--->這個情況下他會是空的 }); </script> 這個情況下當下我就覺得是返回值傳遞失敗 不過後來發現 下面的圖形劃出來 依然是正確的 表示值有進去 後來改成 <script> $.ajax({ type: "POST", url: "wang_ajax.php", data:{name:"A"}, async:false, success:function(data,status){ alert(data);------>正確 var tags = $.parseJSON(data); testoption.xAxis.categories=tags; }}); alert(testoption.xAxis.categories);-------->正確 </script> 所以才會覺得跟async有關係 後來有查詢一下 目前評估上應該是需要補上async:false 避免同步進行的時候如果查詢延遲圖畫出來會有東西消失 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.45.39 ※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1397358397.A.B63.html ※ 編輯: plok74122 (220.134.45.39), 04/13/2014 11:07:06
qwer820404:這樣說好了…非同步不會等你呼叫的api做完事 04/13 12:11
qwer820404:頁面不會停在那邊等 所以他會直接去執行alert那行 04/13 12:11
qwer820404:等到 你呼叫的api成功回傳了 那個時間點也許已經過了 04/13 12:12
qwer820404:所以alert叫出來是空的情況下 若是success的情況 04/13 12:13
qwer820404:testoption.xAxis.categories是會有值沒錯 04/13 12:13
qwer820404:你把asyncs設成false 那就失去非同步的功用了 04/13 12:14
qwer820404:變成大家要等到你這次的POST完成才會繼續跑 04/13 12:14
qwer820404:我之前是有自己把highchart寫成C# Wrapper版 04/13 12:14
qwer820404:也跑了蠻大量的資料 是不太會跟async有關係 04/13 12:15
danny8376:請把資料回來要做的事全寫在success的function裡 04/13 17:52