首页 新闻 搜索 专区 学院

jquery ajax 加载页面

0
悬赏园豆:80 [已解决问题] 解决于 2011-07-08 16:02

在首页  index.aspx中 传值到-------->flightlist.aspx中,
flightlist.aspx将获取index.aspx传过来的值,然后通过$.ajax()读取数据并显示。
而现在要达到的效果是在  flightlist.aspx读取数据延迟这段期间,页面跳转到《提示页面》“正在加载……”。数据读取完毕后回到flightlist.aspx页面并显示数据。
我现在的做法是 在ajax()读取数据前,通过ajaxStart()跳转到<提示页面>,通过ajaxComplete()来判断是否读取完毕,若读取完毕就跳转到flightlist.aspx页面

问题补充:

各位大虾的方法都不错,给我加深了理解。基本的方法都是一样的……

问题已经解决,通俗一点说就是用了遮罩的效果

   //查询航班
    $("#waiting").ajaxStart(function() {
      //  $(this).html("<img src='../images/Flight/images/loading_16x16.gif'/>正在查询,请稍候...");
        $("#pageA").css("display", "none");
        $("#pageB").css("display", "block");
 
    });
    $("#waiting").ajaxComplete(function(event, request, settings) {
    //    $(this).html("机票查询结果");
        $("#pageA").css("display", "block");
        $("#pageB").css("display", "none");

    });

    $.ajax({
        url: 'xxx',
        type: 'POST',
        data: { depcity: depcity, aircity: arrcity, flightdate: d1, airco: airco },
        dataType: 'xml',
        timeout: 30000,
        error: function(o) {
            if (o.readyState == 0)
                alert("查询超时");
            else
                alert(o.responseText);
        },
        success: showFlight      
    });

function showFlight()

{

//....实体

}

希望各位大虾能说说心得,加深理解。月底再给各位统一给分啦,谢谢!

道勤2016的主页 道勤2016 | 初学一级 | 园豆:30
提问于:2011-06-17 13:54
< >
分享
最佳答案
0

alert('ajax前执行');

$.ajax({ url: "test.html", cache: false, success: function(html){ 

alert('ajax执行成功执行');

 } });

收获园豆:10
慧☆星 | 大侠五级 |园豆:5503 | 2011-06-17 14:33
其他回答(4)
0

把这个  “《提示页面》“正在加载……”。”   用一个层放到flightlist.asph就行了嘛

例如:

$(function(){

  
//在这里用层显示 ’正在加载‘

  
//读取数据

  $.ajax(

    
//```

    success:
function(msg)

    {

      //把层给隐藏或移除了

      
//加载数据

    }

  );

});

收获园豆:50
写代码的小2B | 园豆:4346 (老鸟四级) | 2011-06-17 14:34
0

关于跳转:如果楼主跳转的意思是到页面B去的话那么不管page a 怎么做都是没用的不管是ajax还是什么的,因为http是无状态的协议,不建议楼主使用这种方式。如果只是在page a 上请求page b(这里page b 一般作为一个服务专门返回提示窗口如Loading),那么也是不存在跳转的。

收获园豆:20
today4king | 园豆:3267 (老鸟四级) | 2011-06-17 14:50
0

关注下

麻将我会 | 园豆:24 (初学一级) | 2011-06-20 22:26
0

嗯?需要这样么?
$.ajax 不是有方法是beforeSend么?在这个方法里面写上Loading的js代码,Success或者complete中写上关闭loading的代码就可以了

webaspx | 园豆:1987 (小虾三级) | 2011-06-21 12:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册