求教ajax问题, 高手进来点拨一下。我现在一个页面, 内容很长, 图片很多;该页面,有一个ajax是用来搜索提示用的。 可是我现在碰到一个问题,我刷新一下该页面,如果页面整个未加载完成时,我无论输入什么,ajax都不返回数据,搜索没有提示. 非要等整个页面加载完成了,ajax搜索提示就出来了。 明显是要等页面加载完成,ajax才开始返回数据。  有些用户, 喜欢一进来,就已经开始搜索了。 这时候往往页面还未加载完成,用户是没有搜索提示的。我用的是jquery 的ajax   此js在head区,和页面头部加载都试过了, 无论放在哪个位置,也非得页面加载完成,才能交互数据。
$.post("seach.php", {Action: "post",queryString: ""+inputString+""}, function(data){ 
alert("执行到这了");if(data.length >0) { 
$('#suggestions').show(); 
$('#autoSuggestionsList').html(data); 

});页面未加载完成时, 会输出'执行到这了'. 但下面返回的数据,就只能等页面加载完成后,才返回到数据。怎么解决这个问题,让页面未加载完成时,ajax就能正常返回数据,无需等这个页面加载完毕才能执行?
ajax    php

解决方案 »

  1.   

    本帖最后由 showbo 于 2013-11-05 16:50:03 编辑
      

  2.   


    ==============================
    我ajax加载的是PHP页面, PHP页面串,我把内容单纯的改成, 输出'111111111111111111';
    没有任何程序。  也是同样的结果, 非要等整个页面加载完成,搜索提示才输出1111111111111
      

  3.   


    ==============================
    我ajax加载的是PHP页面, PHP页面串,我把内容单纯的改成, 输出'111111111111111111';
    没有任何程序。  也是同样的结果, 非要等整个页面加载完成,搜索提示才输出1111111111111
    没仔细看你的说明。。应该是css加载的问题
      

  4.   


    =========================
    把alert("执行到这了"); 如果放到最后, 他也是等整个页面加载完成了,才弹出对话框.
      

  5.   

    如果是css未加载完, 我alert("执行到这了")放到最后,他应该马上弹出这句才对啊。  可以还是要等我整个网页加载完成, 他才弹出这句。
      

  6.   


    =========================
    把alert("执行到这了"); 如果放到最后, 他也是等整个页面加载完成了,才弹出对话框.
    不可能吧。什么浏览器。是不是你那2个控件还没有在DOM中生成导致代码出错
    if(data.length >0) { 
    alert(data)//能执行到这句吗?还是页面加载完毕才执行
    $('#suggestions').show(); 
    $('#autoSuggestionsList').html(data); 
    alert("执行到这了");///////这里放一句,应该没加载完毕也会执行到这句,
    }
      

  7.   


    =========================
    把alert("执行到这了"); 如果放到最后, 他也是等整个页面加载完成了,才弹出对话框.
    不可能吧。什么浏览器。是不是你那2个控件还没有在DOM中生成导致代码出错
    if(data.length >0) { 
    alert(data)//能执行到这句吗?还是页面加载完毕才执行
    $('#suggestions').show(); 
    $('#autoSuggestionsList').html(data); 
    alert("执行到这了");///////这里放一句,应该没加载完毕也会执行到这句,
    }
    alert(data)//能执行到这句吗?还是页面加载完毕才执行
    这样测试了,  还是需要页面加载完成, 才输出'data'中的数据。
      

  8.   

    FF中好像不存在这个问题, IE中比较明显.
      

  9.   


    alert(data)//提到这里来是什么效果
    if(data.length >0) { 
    是不是你加载的内容太多,IE处理不过来。。
      

  10.   


    alert(data)//提到这里来是什么效果  这里输出的效果很正常,返回的数据是正确的, 但是就是非要等页面,加载完成后才能输出。加载内容太多, 是指哪方面。 我网站图片却实很多, 需要一些时间加载。 因为是首页,内容也较长。
      

  11.   

    你不用ajax,直接$('#suggestions').show(); 
    $('#autoSuggestionsList').html('======================'); 看能显示没
      

  12.   


    我不用ajax正常了,貌似,就是ajax接收不到返回的数据!!
      

  13.   

    你加载页面的时候继续ajax搜索数据但是显示数据的代码 你可以放在 window.onload里面啊难道2兄弟一定要捆绑?
      

  14.   


    现在有个关键问题是,页面加载的时候貌似ajax不工作了,根本不跟我的PHP页面交互返回数据。 非得页面加载完毕, 才返回数据。 我上面有例子测试过。
      

  15.   

    $.post("rpc.php", {Action: "post",queryString: ""+inputString+""}, function(data){ if(data.length >0) { 
    alert(data);//ajax 接收到数据就输出来看看
    $('#suggestions').show(); 
    $('#autoSuggestionsList').html(data); 

    }); 这样测试, 还是要等页面加载完毕。    我后面加载的页面中,有没有什么情况是可以挂起ajax暂时停止执行的?
      

  16.   


    现在有个关键问题是,页面加载的时候貌似ajax不工作了,根本不跟我的PHP页面交互返回数据。 非得页面加载完毕, 才返回数据。 我上面有例子测试过。额你的页面是静态还是动态的?
    是动态的话  第一次加载页面的时候就吧数据搜索好写给他吧
      

  17.   


    现在有个关键问题是,页面加载的时候貌似ajax不工作了,根本不跟我的PHP页面交互返回数据。 非得页面加载完毕, 才返回数据。 我上面有例子测试过。额你的页面是静态还是动态的?
    是动态的话  第一次加载页面的时候就吧数据搜索好写给他吧我晕,几万条数据。 不可能预先加载的。而且中间还要PHP来筛选
      

  18.   


    现在有个关键问题是,页面加载的时候貌似ajax不工作了,根本不跟我的PHP页面交互返回数据。 非得页面加载完毕, 才返回数据。 我上面有例子测试过。额你的页面是静态还是动态的?
    是动态的话  第一次加载页面的时候就吧数据搜索好写给他吧我晕,几万条数据。 不可能预先加载的。而且中间还要PHP来筛选
    这个首次搜索的动作 看下来真的有点多余
      

  19.   

    还有办法没?  ajax在什么情况下, 有可能被挂起,暂停执行??   难道非要等页面的图片下载完?ajax才可以开始操作?
      

  20.   


    试过,没用$.ajax({
        url:"txt.xml",
        datatype:"xml",
        async:true,
        type:"POST"
        success:function(oxml){
            alert("success");
        },
        error:function(oxml){
            alert("error");
        }
    });
      

  21.   


    试过,没用$.ajax({
        url:"txt.xml",
        datatype:"xml",
        async:true,
        type:"POST"
        success:function(oxml){
            alert("success");
        },
        error:function(oxml){
            alert("error");
        }
    });

    应该不会有问题的。
      

  22.   

    ajax是在domReady之后绑定到搜索上去的吗?
      

  23.   

    $(document).ready(function (){
        //。。
    }
    加载完之后再执行
      

  24.   

    你就按楼上那样 domReady以后绑定ajax试一下~~~不知道你怎么放的  一般放到底部或者直接放到$().ready()里都不会等图片加载完才执行,都是dom结构一完成就执行了