在客户端脚本执行时显示加载GIF图像

时间:2011-02-04 09:29:08

标签: jquery

我得到了非常繁重的jQuery代码。一切都预先加载到客户端,然后使用jQuery进行排序:

$('.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代码工作时显示加载图片?或者你可能会看到我的代码中可以改进的东西吗?

3 个答案:

答案 0 :(得分:1)

浏览器中的JavaScript执行,页面呈现和绘制管道是单线程的(除非您算上HTML5 webworkers)。这意味着,如果您运行足够CPU的JavaScript,动画GIF图像将停止动画。唯一的方法是优化代码,并在某些情况下使用setTimeouts中断执行调用。

答案 1 :(得分:0)

在不知道这个jQuery正在运行什么的情况下,很难提出任何改进建议。

但是,我过去曾经使用加载图标将它们作为背景图像放在你加载所有数据的任何内容上,这样当数据加载时它会掩盖它们。

答案 2 :(得分:0)

只需在开始jQuery工作之前显示加载图像,并在完成后隐藏它。

我认为没有像使用Ajax时那样的事件。