這裏我有一個簡單的測試代碼,它在瀏覽器中加載圖像測試。在我完成加載後,我使用異步onload事件將圖像添加到dom。圖像加載得很好。 問題是如果我不斷重新加載頁面多個時間圖像序列變化。就像圖像-2在圖像-1之前加載,有時圖像-3加載第一等,如何我可以確保圖像加載順序,如第一次加載image1,然後image2,image3等每次我加載頁面。如何我可以做到這一點?如何確保圖像順序加載
var images = ['cat1.png','cat2.jpg','cat3.jpg'];
var i = 0;
images.forEach(function(elem,index,arr){
var image=new Image();
image.onload = function(){
document.body.appendChild(image);
console.log(++i);
};
image.onerror = function(){
console.log('error occured');
}
image.src = elem;
image.style.width = '300px';
image.style.height = '300px';
});
使用承諾https://developer.mozilla.org/nl/docs/Web/ JavaScript/Reference/Global_Objects/Promise – Roberrrt
但是,foreach是一個同步方法。它應該阻止所有內容,直到第一個圖像加載,不是嗎? –
@ AL-zami'onload'是一個異步事件,因此'forEach'的回調不會等待圖片下載,它只會開始下載,然後繼續。 – Frxstrem