Jquery.svg加载性能问题



使用 jQuery.svg,我尝试将一长串 SVG 文件动态加载到网站上的相应抽屉中。我成功地正确加载了它们,但是,当它们全部加载时,网站上的任何点击都会延迟至少 2 秒。

当svg.load函数被删除时,网站非常快。

这是jQuery:

function initFloorPlans(){
    $('.list-item', '#tab1').each(function(){
            var zoneID = $(this).attr('data-value');
            $(this).find('.svg-load').svg();
            svg = $(this).find('.svg-load').svg('get');
            var path = "svg/thumbs/"+zoneID+".svg";
             svg.load(path,{
                addTo: false,
                changeSize: true
            }); 
    });
}

这是一个 HTML 示例:

<div id="tab1">
    <div class="list-item" data-value="zone1-1">
        <div class="svg-load"></div>
    </div>
    <div class="list-item" data-value="zone1-2">
        <div class="svg-load"></div>
    </div>
    <div class="list-item" data-value="zone1-3">
        <div class="svg-load"></div>
    </div>
    <div class="list-item" data-value="zone1-4">
        <div class="svg-load"></div>
    </div>
    <div class="list-item" data-value="zone1-5">
        <div class="svg-load"></div>
    </div>
    <div class="list-item" data-value="zone1-6">
        <div class="svg-load"></div>
    </div>
</div>

我不确定以上信息是否足以提供明智的答案,但是如果您看到任何可疑内容,或者是否可以推荐我可以开始检查代码的区域,我们将不胜感激。

文件名为 (zone1-1.svg)、(zone1-2.svg) 等。

具体问题:如果有一些挥之不去的事件正在发生,是否有一个特定的成功函数可以澄清问题?

谢谢!

好的,

根据约瑟夫凯西的要求,这是函数调用:

$(window).load(function(){
    initFloorPlans();
});

事实证明,该功能本身完全没问题。真正的问题是SVG文件被损坏了,只是在我用adobe Illustrator删除了每个文件周围的空白(只是使用了画板复选框)之后。

我不确定此解决方案是否适用于面临此类问题的任何人,但是,值得考虑的是 SVG 已损坏的事实。

我现在正在加载几百个 SVG,绝对没有问题。

谢谢!

最新更新