0

約150枚の画像をプリロードしようとしていて、2つのことができるようにしたい...

1) 画像は、ファイル名のリストを使用してプリロードされています。リスト内のすべてのファイル名に一致するファイルがあるわけではありません。

例) リストにあるのに pic04.jpg が存在しない場合があります。

そのため、プリロードするときに、可能であれば画像が存在するかどうかを把握できるようにしたいと考えています。

2) 現時点では、関数は pictures[i] = new Image(); を使用して 150 枚の画像すべてを単純にプリロードしています。pictures[i].src = "path/to/my/images/" + imageName[i] + ".jpg";

関数は非常に高速に実行されますが、画像はプリロードされていないようです。続行する前に、画像が読み込まれるまでサイトを待機させるために何かをする必要がありますか?

何か案は?

4

1 に答える 1

1

関数は非常に高速に実行されますが、画像はプリロードされていないようです。

画像は非同期でロードされています。関数は実行を終了しますが、ブラウザはバックグラウンドで画像の読み込みを続けます

そのため、プリロードするときに、可能であれば画像が存在するかどうかを把握できるようにしたいと考えています。

はい、可能です。Image オブジェクトで onerror イベント ハンドラを使用できます。

var img = new Image();
img.onerror=function(){alert('error: '+this.src);}
img.onload=function(){alert('image loaded: '+this.src);}
img.src='path/to/image.jpg';
于 2009-05-28T17:59:41.140 に答える