问题如下$(check());
$(load_news_list());
如上顺序,页面同时加载这两个函数,为什么只执行$(load_news_list());***********************$(load_news_list());
$(check());
调一下顺序,只执行$(check());请问这是为什么?请高手帮忙,谢谢

解决方案 »

  1.   

    $() 等同于 $(document).ready() 等同于 window.onload也就是页面加载执行的方法  仅此执行一次;前面的被后面的替换到了。解决方法
    $(function(){
       check();
       load_news_list();
    });
      

  2.   

    谢谢楼上,问题依旧
    $(function(){ 
      check(); 
      load_news_list(); 
    });
    也是只执行最后一个函数,即load_news_list(); 
    =============================
    换为
    $(function(){ 
       
      load_news_list(); 
      check();
    });
    执行check();
      

  3.   

    经测试,初步结论是JS冲突,现在JS发上来,我看不出问题所在
    // JavaScript Document
    function xmldom()
    {
    var xmlDom = false;
    var arr_Username = new Array();            //XMLHTTP对象变量
    var arr_BackInfo = new Array();            //保存已经查询过的用户名
    var canSubmit = false;  

    try 
    {
    xmlDom = new ActiveXObject("msxml2.XMLHTTP");    //IE高版本创建XMLHTTP
    }
    catch (E) 
    {
    try 
    {
    xmlDom = new ActiveXObject("microsoft.XMLHTTP");       //IE低版本创建XMLHTTP
    }
    catch (E) 
    {
    xmlDom = new XMLHttpRequest();  //兼容非IE浏览器,直接创建xmlhttp对象
    }
    }
    return xmlDom;
    }
    //登录判断
    function check()
    {
    xmlDom=xmldom();
    var d=new Date();
    var strURL="/check_login.asp?d="+d.getTime();
     xmlDom.open("get",strURL,true);                   
       xmlDom.onreadystatechange=function()              
       {
      if(xmlDom.readyState==4)
    if(xmlDom.status==200)     
      {   
     if(xmlDom.responseText!="")
     {
      document.getElementById("log").innerHTML=unescape(xmlDom.responseText);
     }
    else
         alert("意外错误!请联系开发人员!");
    }
     
    }
       xmlDom.send(xmlDom);
    }
    //用户登录
    function loginer() 
    {
    xmlDom=xmldom();
    if(document.getElementById("username").value=="")
    {
    alert("请输入用户名!");
    return;
    }
    else if(document.getElementById("password").value=="")
    {
    alert("请输入密码!");
    return;
    }
        var d=new Date();
    //提交登陆请求的URL变量
       var strURL="ajax.asp?lx=login&name="+document.getElementById("username").value+"&pass="+document.getElementById("password").value+"&d="+d.getTime();
       
       xmlDom.open("get",strURL,true);                   //XMLHTTP打开
       xmlDom.onreadystatechange=function()              //XMLHTTP状态改变时调用的事件
       {
      if(xmlDom.readyState==4)
    if(xmlDom.status==200)     
      {   
    if(xmlDom.responseText=="0")
      {
      document.getElementById("username").value=document.getElementById("password").value="";
      alert("账号或者密码错误!");      
                 }
    else if(xmlDom.responseText!=""&&xmlDom.responseText!="0")    // //注册成功
     {
          //document.getElementById("nav").innerHTML=xmlDom.responseText;  //显示登录后的界面
      //document.getElementById("mytitle").innerHTML=SignoutStr;        //出现注销按钮
                      //document.getElementById("mytitle1").innerHTML=SignoutStr; 
      document.getElementById("log").innerHTML=unescape(xmlDom.responseText);
      //window.self.location.href = window.location.href;   
     }
    else
         alert("意外错误!请联系开发人员!");
    //            document.getElementById("loadingflag").style.display='none';         //加载数据的提示消失
    }
     //else                                                   //出现错误
      //document.getElementById("loadingflag").innerHTML="向服务器请求数据时出现错误!";
    }
       xmlDom.send(xmlDom);
       //document.getElementById("loadingflag").style.display='';             //显示加载的页面提示效果 }
    //用户登出
    function logout()
    {
    xmlDom=xmldom();
    var d=new Date();
    var strURL="/ajax.asp?lx=logout&d="+d.getTime();
     xmlDom.open("get",strURL,true);                   
       xmlDom.onreadystatechange=function()              
       {
      if(xmlDom.readyState==4)
    if(xmlDom.status==200)     
      {   
     if(xmlDom.responseText=="ok")
     {
       alert("成功退出!");
       check();
     }
    else
         alert("意外错误!请联系开发人员!");
    }
     
    }
       xmlDom.send(xmlDom);
    }
     //加载后台新闻列表
    function load_news_list()
    {
    xmlDom=xmldom();
    var d=new Date();
    //提交登陆请求的URL变量
       var strURL="news_list.asp?d="+d.getTime();   
       xmlDom.open("get",strURL,true);                   
       xmlDom.onreadystatechange=function()              
       {
      if(xmlDom.readyState==4)
    if(xmlDom.status==200)     
      {   
     if(xmlDom.responseText!="")  
     {
          
      document.getElementById("news_list").innerHTML=unescape(xmlDom.responseText);
         
     }
    else
         alert("意外错误!请联系开发人员!");

    }
     
    }
       xmlDom.send(xmlDom);

    }
    //加载后台新闻列表分页
    function sendpage(i)
    {
    xmlDom=xmldom();
    var d=new Date();
    var strURL="news_list.asp?page="+i+"&d="+d.getTime();
     xmlDom.open("get",strURL,true);                   
       xmlDom.onreadystatechange=function()              
       {
      if(xmlDom.readyState==4)
    if(xmlDom.status==200)     
      {   
     if(xmlDom.responseText!="")  
     {
          
      document.getElementById("news_list").innerHTML=unescape(xmlDom.responseText);
         
     }
    else
         alert("意外错误!请联系开发人员!");

    }
     
    }
       xmlDom.send(xmlDom);
    }
    //新闻浏览
    function ll(i)
    {
    xmlDom=xmldom();
    var d=new Date();
    var strURL="news.asp?lx=ll&id="+i+"&d="+d.getTime();
     xmlDom.open("get",strURL,true);                   
       xmlDom.onreadystatechange=function()              
       {
      if(xmlDom.readyState==4)
    if(xmlDom.status==200)     
      {   
     if(xmlDom.responseText!="")  
     {
          
      document.getElementById("news_list").innerHTML=unescape(xmlDom.responseText);
         
     }
    else
         alert("意外错误!请联系开发人员!");

    }
     
    }
       xmlDom.send(xmlDom);
    }
    //新闻浏览,添加新闻后转向
    function ll1()
    {
    xmlDom=xmldom();
    var d=new Date();
    var strURL="news.asp?lx=ll1&d="+d.getTime();
     xmlDom.open("get",strURL,true);                   
       xmlDom.onreadystatechange=function()              
       {
      if(xmlDom.readyState==4)
    if(xmlDom.status==200)     
      {   
     if(xmlDom.responseText!="")  
     {
          
      document.getElementById("news_list").innerHTML=unescape(xmlDom.responseText);
         
     }
    else
         alert("意外错误!请联系开发人员!");

    }
     
    }
       xmlDom.send(xmlDom);
    }
    //新闻编辑
    function edit(i)
    {
    xmlDom=xmldom();
    var d=new Date();
    var strURL="news.asp?lx=edit&id="+i+"&d="+d.getTime();
     xmlDom.open("get",strURL,true);                   
       xmlDom.onreadystatechange=function()              
       {
      if(xmlDom.readyState==4)
    if(xmlDom.status==200)     
      {   
     if(xmlDom.responseText!="")  
     {
           //document.myiframe.document.getElementById("yuanma").checked="checked"
      document.getElementById("news_list").innerHTML=unescape(xmlDom.responseText);
    //window.frames['HtmlEditor'].document.getElementsByTagName('BODY')[0].innerHTML=unescape(xmlDom.responseText);
     }
    else
         alert("意外错误!请联系开发人员!");

    }
     
    }
       xmlDom.send(xmlDom);
    }
    //新闻保存,用到post方式
    function save(i,tit,con)
    {
    xmlDom=xmldom();
    urlstring="lx=save&id="+i+"&tit="+escape(tit)+"&con="+escape(con)
    var d=new Date();
    var strURL="news.asp?d="+d.getTime();
     xmlDom.open("post",strURL);   
     xmlDom.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
       xmlDom.onreadystatechange=function()              
       {
      if(xmlDom.readyState==4)
    if(xmlDom.status==200)     
      {   
     if(xmlDom.responseText=="OK")  
     {       
     // document.getElementById("news_list").innerHTML=unescape(xmlDom.responseText); 
      alert("保存成功!");
      ll(i);
     }
    else
         alert("意外错误!请联系开发人员!");
    }
     
    }
       xmlDom.send(urlstring);
    }
    //新闻添加转向
    function add1()
    {
    xmlDom=xmldom();
    var d=new Date();
    var strURL="news.asp?lx=add1&d="+d.getTime();
     xmlDom.open("get",strURL,true);                   
       xmlDom.onreadystatechange=function()              
       {
      if(xmlDom.readyState==4)
    if(xmlDom.status==200)     
      {   
     if(xmlDom.responseText!="")  
     {
          
      document.getElementById("news_list").innerHTML=unescape(xmlDom.responseText);

     }
    else
         alert("意外错误!请联系开发人员!");

    }
     
    }
       xmlDom.send(xmlDom);
    }
    //新闻添加,用到post方式
    function add(tit,con)
    {
    xmlDom=xmldom();
    urlstring="lx=add&tit="+escape(tit)+"&con="+escape(con)
    var d=new Date();
    var strURL="news.asp?d="+d.getTime();
     xmlDom.open("post",strURL);   
     xmlDom.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
       xmlDom.onreadystatechange=function()              
       {
      if(xmlDom.readyState==4)
    if(xmlDom.status==200)     
      {   
     if(xmlDom.responseText=="OK")  
     {       
     // document.getElementById("news_list").innerHTML=unescape(xmlDom.responseText); 
      alert("保存成功!");
      ll1();
     }
    else
         alert("意外错误!请联系开发人员!");
    }
     
    }
       xmlDom.send(urlstring);
    }
      

  4.   

    如将check();加载于load_news_list()里,显示则正常,弄不明白这是什么原因,请高手指点//加载后台新闻列表
    function load_news_list()
    {
        xmlDom=xmldom();
        var d=new Date();
            //提交登陆请求的URL变量
              var strURL="news_list.asp?d="+d.getTime();           
           xmlDom.open("get",strURL,true);                   
           xmlDom.onreadystatechange=function()              
           {
              if(xmlDom.readyState==4)
                if(xmlDom.status==200)     
                  {   
                     if(xmlDom.responseText!="")  
                     {
                          
                          document.getElementById("news_list").innerHTML=unescape(xmlDom.responseText);
                          check();                  
                     }
                    else
                            alert("意外错误!请联系开发人员!");
        
                }
                 
            }
           xmlDom.send(xmlDom);
        
    }
      

  5.   

    5楼中的check(); 应该为check();
    本想加个特殊颜色,结果没加上,呵呵
      

  6.   

    $(fn); 这种方式可以多个加载的, 按照代码顺序执行。
    你的代码太多了,没时间去看,上班中。
    我估计是因为ajax请求的问题, 你两个方法请求ajax后,就存在了3个线程。
    所以才给了你没有执行的错觉,实际上代码是执行了。 你可以用alert分别在ajax请求开始之前,以及成功时弹出来看看执行到哪一步了。
      

  7.   

    你5楼的代码 把check()这个请求方到了另外一个请求成功以后再请求, 所以就不会有错了。
      

  8.   

    $(load_news_list());

    setTimeout("check()",0);采用这种方法,可以实现同时加载,不过,有一定机率出问题,调用错误,不知道怎么回事。如将setTimeout的时间设置半秒以上,基本没有调用错误问题,看来同时进行两个AJAX进程,是有可能出现混乱,请问如何解决?
      

  9.   

    在两个函数中都放入alert语句,看看是否执行,再判断错误的来源。
      

  10.   



    $(load_news_list()); 
    $(check()); 
    方法,
    将alert()加入到load_news_list()函数中,时而执行,时而不执行,执行时,执行了三遍,本应该只执行一次即可。
    将alert()加入到check()函数中,每次都执行,并且只有一次,正常
      

  11.   

    把多个请求依次执行吧 在check()请求成功后再执行load_news_list();
    或者两个请求同时发起 创建的xmlhttp对象命不同的名 就不会冲突了
      

  12.   

    哎,谁知道AJAX还有这毛病呢,呵呵,改个名就可以了,依照下面的方法改动,成功,不再有任何错误,呵呵,非常感谢楼上
    function check()
    {
        xmlDom=xmldom();
        var d=new Date();
        var strURL="/check_login.asp?d="+d.getTime();
         xmlDom.open("get",strURL,true);                   
           xmlDom.onreadystatechange=function()              
           {
              if(xmlDom.readyState==4)
                if(xmlDom.status==200)     
                  {   
                     if(xmlDom.responseText!="")
                     {
                      document.getElementById("log").innerHTML=unescape(xmlDom.responseText);                        
                     }
                    else
                            alert("意外错误!请联系开发人员!");    
                }
                 
            }
           xmlDom.send(xmlDom);    
    }//加载后台新闻列表
    function load_news_list()
    {
        xmlDom1=xmldom();//将此变量改变一下名称,即解决问题
        var d=new Date();
            //提交登陆请求的URL变量
              var strURL="news_list.asp?d="+d.getTime();           
           xmlDom1.open("get",strURL,true);                   
           xmlDom1.onreadystatechange=function()              
           {
              if(xmlDom1.readyState==4)
                if(xmlDom1.status==200)     
                  {   
                     if(xmlDom1.responseText!="")  
                     {
                          
                          document.getElementById("news_list").innerHTML=unescape(xmlDom1.responseText);
                                    
                     }
                    else
                            alert("意外错误!请联系开发人员!");
        
                }
                 
            }
           xmlDom1.send(xmlDom1);
        
    }