0
function load_content(url)  
{
  $('#loading').show();
  $.get(url, function(data) {
    $('#target').html(data); 
    $('#loading').hide();  
  });  
}

我使用以下代码将内容从另一个页面加载到<div>ID 目标中。在内容被加载之前,页面变得无响应或滚动非常缓慢。GIF 预加载器也没有动画。我在使用方法时遇到了同样的问题.load()。我的代码中有什么不好的做法吗?或者如何克服这个问题?

但是在这个站点http://www.behance.net/上滚动内容的 Ajax 加载是流畅的。如何达到同样的效果?

我尤其在 Chrome 中面临这个问题。IE和firefox,如我所料,流畅。

4

1 回答 1

0

您应该尝试使用jQuery 的.ajaxStart().ajaxComplete()方法:

function load_content(url){
   $(document).ajaxStart(function(){
       $('#loading').show();
   });

   $.get(url, function(data) {
       $('#target').html(data);
   });

   $(document).ajaxComplete(function(){
       $('#loading').hide();
   });

 }

.ajaxStart()

每当要发送 Ajax 请求时,jQuery 都会检查是否还有其他未完成的 Ajax 请求。如果没有进行中,jQuery 会触发 ajaxStart 事件。此时会执行已使用 .ajaxStart() 方法注册的所有处理程序。

.ajaxStart() 来自文档

.ajaxComplete()

每当 Ajax 请求完成时,jQuery 都会触发 ajaxComplete 事件。此时会执行已使用 .ajaxComplete() 方法注册的所有处理程序。

.ajaxComplete() 来自文档

于 2013-03-31T15:38:50.267 回答