我使用舊式圖像元素來緩存圖像。當他們加載時,我知道他們在瀏覽器緩存中。如果我想確保它們在附近,我堅持使用一個不能超出範圍的數組。
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
謝謝你,這些答案很好,但重新構建我已經使用的代碼太重了。我會嘗試圖像元素,並讓你知道如何處理。 – nutnics 2009-07-22 18:25:16