ajax第一个a表示,A文件通过Jquery Ajax 加载B到A文件的一个层中,显示等待框的有关问题...

A文件通过Jquery Ajax 加载B到A文件的一个层中,显示等待框的问题

我想实现的功能室单击A页面的某个按钮加载B页面到A页面中的一个层中。

$.ajax({

type:"get",

url: "teach/teachingCenter.html",

dataType:"html",

timeout:1000,

async:false,

beforeSend : function(XMLHttpRequest){

$('.contentBox').html('');

//clickme为显示等待框方法

clickme(6);

},

success: function(data, textStatus){

$('.contentBox').html(data);

//clickhide()是关闭等待框方法

clickhide();

},

complete: function(XMLHttpRequest, textStatus){

},

error: function(){

//alert("load error");

clickautohide(5,600);

}

});

现在问题是用以上的方法根本不出现等待框..请问为什么?我放到服务器上也试过了,还特意在另外一个文件里面放了张很大的图,加载的时候确实慢了,但是在加载那页面的时候还是没有显示等待框。

我在success 中加了个延时执行的方法时beforeSend中的显示等待框方法就显示了,请问这是为什么? 难道不是先执行beforeSend的语句然后当ajax相应成功(也就是获取完文件后)然后再执行success中的语句吗?

$.ajax({

type:"get",

url: "teach/teachingCenter.html",

dataType:"html",

timeout:1000,

async:false,

beforeSend : function(XMLHttpRequest){

//$('.contentBox').html("加载中...");

//clickautohide(6,3000);

$('.contentBox').html('');

clickme(6);

},

success: function(data, textStatus){

setTimeout(function (){

$('.contentBox').html(data);

//加载完成关闭提示

clickhide();

},500);

},

complete: function(XMLHttpRequest, textStatus){

},

error: function(){

//alert("load error");

clickautohide(5,600);

}

});

------解决方案--------------------

应为你的ajax是同步请求的,同步请求会挂起js代码的执行,改成异步的,删除红色的语句

$.ajax({

type: "get",

url: "teach/teachingCenter.html",

dataType: "html",

timeout: 1000,

//async: false,

beforeSend: function (XMLHttpRequest) {

$('.contentBox').html('');

//clickme为显示等待框方法

clickme(6);

},

success: function (data, textStatus) {

$('.contentBox').html(data);

//clickhide()是关闭等待框方法

clickhide();

},

complete: function (XMLHttpRequest, textStatus) {

},

error: function () {

//alert("load error");

clickautohide(5, 600);

}

});

------解决方案--------------------

beforeSend 是自定义方法

被设定在 send 之前调用一下

if (!c.beforeSend

------解决方案--------------------

c.beforeSend.call(h, x, c) !== !1 && E !== 2) {

........

o.send(b, T)

只要不返回 false 程序就不会中断

注意这里不是异步调用,必须等 beforeSend 指向的函数运行结束,程序才会继续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值