作者plok74122 (乌嘎虾嘎)
看板Ajax
标题Re: [问题] JQuery ajax返回值传递问题
时间Sun Apr 13 11:06:34 2014
大致情况是如此 因为是写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://webptt.com/cn.aspx?n=bbs/Ajax/M.1397358397.A.B63.html
※ 编辑: plok74122 (220.134.45.39), 04/13/2014 11:07:06
1F:推 qwer820404:这样说好了…非同步不会等你呼叫的api做完事 04/13 12:11
2F:→ qwer820404:页面不会停在那边等 所以他会直接去执行alert那行 04/13 12:11
3F:→ qwer820404:等到 你呼叫的api成功回传了 那个时间点也许已经过了 04/13 12:12
4F:→ qwer820404:所以alert叫出来是空的情况下 若是success的情况 04/13 12:13
5F:→ qwer820404:testoption.xAxis.categories是会有值没错 04/13 12:13
6F:→ qwer820404:你把asyncs设成false 那就失去非同步的功用了 04/13 12:14
7F:→ qwer820404:变成大家要等到你这次的POST完成才会继续跑 04/13 12:14
8F:→ qwer820404:我之前是有自己把highchart写成C# Wrapper版 04/13 12:14
9F:→ qwer820404:也跑了蛮大量的资料 是不太会跟async有关系 04/13 12:15
10F:→ danny8376:请把资料回来要做的事全写在success的function里 04/13 17:52