2011-02-04 80 views
0

我得到了非常沉重的jQuery代码。一切都被预装到客户端,然后进行排序使用jQuery:显示正在执行客户端脚本时加载GIF图像

$('.acc_trigger').hide(); 
$('#taxonomylist ul li').each(function() { 
    $href = $("a", this).attr("href"); 
    if (!$href.match(/^.*\/activity\/.*[a-z,A-Z]$/i)) { 
     $(this).hide(); 
    } 
}); 
$('#taxonomylist ul li a').click(function() { 
    $href = $(this).attr("href"); 
    $('.acc_trigger').hide(); 
    $regex = new RegExp("^" + $href + "+$"); 

    $('div.taxonomy ul li').each(function() { 
     $href_taxonomy = $("a", this).attr("href"); 
     if ($href_taxonomy == $href) { 
      $(this).parents().filter('.views-field-webform-form-body').prev().show(); 
     } 
    }); 

    $('#taxonomylist ul li').each(function() { 
     $href_sub = $("a", this).attr("href"); 
     if (!$href_sub.match($regex)) { 
      $(this).show(); 
     } 
    }); 

    return false; 
}); 

如何显示加载图片时,我的JavaScript代码的工作?或者,也许你看到我的代码中可以改进的东西?

回答

0

不知道这是什么jQuery是在工作时,很难提出任何改进。

不过,我已经把他们作为无论你加载所有的数据到一个背景图像使用加载图标在过去,当数据被加载这样,它涵盖了起来。

0

只需出示您开始工作的jQuery之前加载图像,并隐藏它,它已经完成了。

我不认为有使用Ajax时一样的事件。

+0

你也可以对jQuery插件blockUI它可以阻止你的用户界面的全部或部分,并显示加载图像的样子 – Fender 2011-02-04 09:33:15

1

JavaScript执行,页面渲染,并在浏览器中画管道是单线程的(除非你把HTML5 webworkers)。这意味着,如果您运行的CPU足够密集的JavaScript,动画GIF图像将停止动画。唯一的解决办法是优化你的代码,并且在某些情况下用setTimeouts打破执行调用堆栈。