AJAX数据返回问题

命题是这样的:通过AJAX访问后台数据,后台返回数据之后,将数据传给图表参数,实现动态绘图。

代码是这样的:

   前台JS

   $(document).ready(function() {

    //chart为画图函数,var1为参数。

     returnPara();

     chart(var1,var2,var3);

    });

 

  function returnPara(){

   //ajax前台代码 

    ...

   if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")

   { 

      var1 =  xmlHttp.responseText; 

   } 

}

 

异想天开的认为在程序启动的时候调用returnPara()函数,然后启动Ajax程序,就能够将后台参数传递给画图函数了。

结果问题是:程序正常能够跑通,网页也能打开,但是图表中本该有内容的var1参数值为0,很明显是因为var1没有赋值。

很头痛的找了很多原因,结果还是没有发生变化,就在快要绝望的时候,发现了问题。

解决方法:

   原程序中,启动ajax程序之后,后台数据还没有返回的时候,程序就继续执行了chart()函数,造成了参数无法赋值。改进方法是

将chart()函数放在判断ajax是否返回结果的if语句中,如果返回结果了再继续执行。

 

改进的程序:

 

$(document).ready(function() {

    //chart为画图函数,var1为参数。

    //这里省略了ajax连接配置的代码

      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")

   { 

      var1 =  xmlHttp.responseText; 

    chart(var1,var2,var3);

   }

    });

改进后的程序能够正确的执行。

 

小结:问题虽小,查起来还是挺费劲的。很多代码的问题不是语法问题,而需要从根本上理解框架的实现原理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值