我用微软那个ajax,然后多线程调用webservices,在页面加载时代码如下:    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["LoginUser"]==null || Convert.ToString (Session["LoginUser"]).Length==0)
        {
            Response.Redirect("UserLogin.aspx");
        }        if (!Page.IsPostBack)
        {
            BeginRead02();  //这几个过程就是多线程调用webservices去取数,然后绑定到页面上
            BeginRead03();
            BeginRead04();
            BeginRead05();
            BeginRead06();
            BeginRead07(); 
        }
    }虽然我用了多线程,但是我发现速度仍然很慢,而且,仍然是取到数之后,页面才显示出来,我有一个loading的gif,
看起来也没有起到什么作用,我想实现的效果是,先把页面显示出来,然后显示数据的地方就显示我那个gif,然后取到数后直接
把数显示出来,这样看起来比较酷一些,貌似速度感觉上也能快些,因为是先显示出来了页面,这样用户也愿意等。各位有什么正解和思路,请指点一下,谢谢

解决方案 »

  1.   

    ajax要设置成异步才是Ajax哦!
      

  2.   

    o?我用的微软的那个ajax,就是用updatepanle的那种,如何设置异步啊?
      

  3.   

    设计成异步,用javascript 在页面的最后调方法,就会实现你说的效果了。
      

  4.   

    假如我已经设计成异步的了,那么如何 用javascript 在页面的最后调方法?
      

  5.   

    加一个UpdateProgress控件,把loading的gif加进去.就可以了.
    是.NET AJAX
      

  6.   

    谢谢 dropping  我不是那个意思,那个gif的事情我搞定了我现在说的是,让页面加载完,然后显示gif,然后再执行ajax的过程是特指form_load 中含有ajax读取数据的时候
      

  7.   

    你可以尝试在初次加载页面时,什么也不做,先显示GIF。加载完毕,使用客户端脚本,在页面完成执行时,
    1.点击本页面上的某个隐藏的按钮,在此按钮中求取数据。
    2.使用xmlhttp的方式向服务端求取数据,求取之后,以脚本的方式(innerHTML)显示在页面上。
      

  8.   

    LZ可抽空看看微软的AJAX教程,会有一些帮助