我使用过时的图像元素来缓存图像。当它们加载时,我知道它们在浏览器缓存中。如果我想确保它们在附近,我会将它们放在一个不会超出范围的数组中。
var images = [];
// Preload a list of images with an optional callback as a final parameter.
function preload() {
if ( arguments.length == 0 ) return;
var waiting = arguments.length - 1,
count = 0,
callback = arguments[ arguments.length - 1 ];
if ( typeof callback == "string" ) {
callback = function() { };
waiting++;
}
function loaded() {
if ( ++count == waiting ) callback();
}
for ( var i = 0 ; i < waiting ; i++ ) {
var image = new Image();
image.onload = loaded;
image.src = arguments[ i ];
}
}
preload( "people.gif", "images/star.jpg", "/site/images/panorama.jpg", function() {
doSomethingWithImages();
});
我很想知道使用图像元素的任何主要缺点。
我在 MDC 上找不到 Image 的原始文档,但这里有一些关于使用 Image 对象的现代文档。
https://developer.mozilla.org/en/Canvas_tutorial/Using_images
但是,该对象早于 Canvas 和 HTML 5。它可以追溯到很久以前。
https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5214317.html