對於圖片多的網站來講,資源加載特別是圖片的加載比較重要。若是圖片加載過慢致使網頁的渲染慢甚至讓http請求超時,這會直接致使用戶的體驗較差,讓人明顯以爲網頁卡。chrome
所以須要將圖片進行預加載,這樣網頁顯示的時候就不會有很明顯的停頓、卡着的感受。瀏覽器
思路是當圖片加載時,先建立一個圖片對象,等圖片對象徹底加載完時出發圖片的的onload函數,在onload函數裏面觸發圖片加載完後的看成函數。這樣當圖片顯示時速度會比較快,就能夠達到讓人以爲圖片加載速度快。緩存
ie、opera下,當圖片加載過一次之後,若是再有對該圖片的請求時,因爲瀏覽器已經緩存住這張圖片了,不會再發起一次新的請求,而是直接從緩存中加載過來。在ie,opera下,對於緩存圖片的初始狀態,與firefox和safari,chrome下是不同的,可是對onload事件的觸發,倒是一致的,無論是什麼瀏覽器。代碼以下:
function loadImage(url, callback) {
var img = new Image(); //建立一個Image對象,實現圖片的預下載
img.onload = function(){//圖片徹底加載完後
img.onload = null;
callback(img);
}
img.src = url;
}函數