打印

[Ajax] 很奇怪的问题,谁能帮忙解释下

引用:
   function mydata(){
           xmlhttp_init();
              rech();
              var ajax_ly_num = document.getElementById("ajax_ly_num");
              var ajax_pl_num = document.getElementById("ajax_pl_num");
              var ajax_hot = document.getElementById("ajax_hot");
              //alert(ajax_hot);
              var aa = "<br>";
              var news_id = document.getElementById('news_id').value;
              //alert(news_id);
              xmlhttp.open("POST","../../news_data.php?time="+new Date().getTime(),true);
              xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
              xmlhttp.send("news_id="+news_id);
           xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 || xmlhttp.readyState=="complete"){
                     ajax_hot.innerHTML = xmlhttp.responseText;
                     var array = eval('('+xmlhttp.responseText+')');
                     var num = array.num;
                     var hot = array.hot;
                     var aa ="343434";
                     alert(aa);
            ajax_ly_num.innerHTML = num.ll_num;
            ajax_pl_num.innerHTML = num.pl_num;
                     for(i=0;i<hot.length;i++){
                       var title = hot[i].title;
                       var imgsrc = hot[i].imgsrc;
                       var aa = aa+"<div style='border:#FF0000 solid 1px'><div><img width='80%' src="+imgsrc+"></div><div>"+title+"</div></div><br>" ;
                            }
                       ajax_hot.innerHTML = aa;
            }
        }
   }
变量在后台返回值前赋值,提示是undefined
变量在后台返回值后赋值,赋值就成功
var ajax_ly_num = document.getElementById("ajax_ly_num");
在后台返回值前取得对象,在后台返回值后,依然有效
变量aa在后台返回值后就失效了,为什么?