0

在 Google 的帮助下,我编写了一个小型预加载器脚本:

var i = 0;

function preloader() {

    imageObj = new Image();

    images = [
        'some/image1.jpg', 
        'some/image2.jpg',
        'some/image3.png',
        'and.png',
        'so.jpg',    
        'on.png'
    ];

    for (i = 0; i <= 20; i ++) {

      imageObj.src = images[i];

    }
}

head必须在我的 HTML 文件中调用此函数才能获得最大效果,对吧?我真的需要申报var i = 0;吗?预加载完成后如何触发另一个功能?

另外,我想问一下如何在运行网站中实现这个功能。假设我有一个包含 100 个img标签的页面。我想我必须手动将源复制并粘贴到images数组中,对吧?因为要使用循环执行此操作,DOM 需要准备好,这再次意味着图像已经开始加载?

预加载会影响SEO吗?

如果有更好的 jQuery 预加载方式,我会同意的。

4

1 回答 1

1

因为您将图像 SRC 分配给同一个变量,所以每个新请求都将取消前一个请求,因为它尚未完成加载。

您也可以为此使用数组:

imageObj = [];

...your code...

for (i = 0; i < images.length; i ++) {
      imageObj[i] = new Image()
      imageObj[i].src = images[i];
    }

不,这不会影响 SEO,因为抓取工具查看的是您页面的文本,而不是图像。您可以在 DOM 准备好之前运行它,因为您没有操作 DOM - 所有图像都在内存中。

jQuery 只是由 JavaScript 组成,并没有任何东西可以提高这个简单代码块的效率。

于 2013-03-12T15:36:53.137 回答