0

我已经使用以下脚本发出 ajax 请求...

 $.ajax({
 type: 'POST',
 url: 'load.php',
 data: 'page='+url,
 dataType: "html",
 beforeSend:function(){

 $('.left').html('<div class="ajax-load"><center><img    src="http://www.cadysalley.com/img/loader.gif" style="margin-top: 33px;" alt="Loading..." /></center></div>');
$('#ajax-load').show();
 },

 success:function(msg){
$('.left').empty();
// successful request; do something with the data
if(parseInt(msg)!=0)
        {

            $('html, body').animate({ scrollTop: 0 }, 0);
            $('.left').html(msg);
            $('#ajax-load').hide();
        }
  },
  error:function(){  

 $('.left').empty();
 $('#ajax-load').hide();
 }
});

我的问题是,每当我单击链接时,微调器就会启动,并且在弹出警报之后,在弹出警报之后,整个网站会暂停几秒钟,除非新页面已加载,...我想要我的网站不要暂停并继续微调器加载,直到整个网站通过 ajax 调用完美加载

4

2 回答 2

0

您正在放置 ajax-load div 的 div 中设置新内容。

$('.left').html('<div class="ajax-load"><center><img    src="http://www.cadysalley.com/img/loader.gif" style="margin-top: 33px;" alt="Loading..." /></center></div>');

 $('.left').html(msg);
 $('#ajax-load').hide();

您需要将 ajax-loader 放在 $('.left') 容器之外。

已编辑

ok do this. 
setTimeout(function() {
   $('.left').empty();
// successful request; do something with the data
if(parseInt(msg)!=0)
    {

        $('html, body').animate({ scrollTop: 0 }, 0);
        $('.left').html(msg);
        $('#ajax-load').hide();
    }
}, 100);

这会成功的。

于 2012-06-15T05:30:25.237 回答
0

尝试这样做.. 完美加载您的网站.. 在您的 ('.left') div 之前添加一个 div.. 隐藏 ('.left') 直到数据被加载.. 直到然后显示您的 ajax 加载器..when完整的数据是通过 ajax 完成的,你隐藏你的 ajax 并显示你的 ('.left')..

像这样..添加一个css类

.hideIT{
visibility:hidden;      
}

beforeSend:function(){

 $('#newDiv').html('<div class="ajax-load"><center><img    src="http://www.cadysalley.com/img/loader.gif" style="margin-top: 33px;" alt="Loading..." /></center></div>');
$('.left').addClass('hideIT');
$('#ajax-load').show();
 },

 success:function(msg){
$('.left').empty();
// successful request; do something with the data
if(parseInt(msg)!=0)
        {

            $('html, body').animate({ scrollTop: 0 }, 0);
            $('.left').html(msg);
            $('#ajax-load').hide();
            $('.left').removeClass('hideIT');

        }
  },
于 2012-06-15T05:44:19.797 回答