5

什么是预加载图像的更好方法:

$.each(['{{ MEDIA_URL }}jwplayer/jwplayer.js',
        '{{ MEDIA_URL }}jwplayer/jwplayer.js.jgz',
        '{{ MEDIA_URL }}jwplayer/player.swf'], function() {
   $('<img/>')[0].src = this;

或者:

var preloadImages = ['{{ MEDIA_URL }}jwplayer/jwplayer.js',
                     '{{ MEDIA_URL }}jwplayer/jwplayer.js.jgz',
                     '{{ MEDIA_URL }}jwplayer/player.swf'];
var imgs = [];
for (var i=0; i<preloadImages.length; i++) {
    imgs[i] = new Image();
    imgs[i].src = preloadImages[i];
}

是什么让一个比另一个更好?

4

3 回答 3

7

第二个比第一个好,因为它是纯 JavaScript 而不是 jQuery 的过度膨胀软件。

l=preloadImages.length您可以通过设置前面并在循环中使用它来稍微改进第二个。

于 2012-04-20T22:22:09.370 回答
1

两者都做同样的事情。第一个片段使用 jQuery,第二个片段没有。没有理由专门为此目的使用 jQuery,所以如果您不在其他地方使用该库,请使用第二个版本。如果您在整个站点中都使用 jQuery,那么第一个也可以。

于 2012-04-20T22:23:12.283 回答
1

第二个更快。首先是更少的输入(通过在 jQuery 中使用更高级别的迭代器方法)。

如果由于其他原因您的项目中已经有 jQuery,那么哪个更好取决于您是否更愿意针对速度或代码大小进行优化。

在技​​术层面上,存在一个实际的实现差异。第二个版本将图像对象的数组保存在一个变量中。第一个让图像对象被垃圾收集。

于 2012-04-20T22:28:50.463 回答