2009-05-28 2 views
0

Я пытаюсь поджать около 150 изображений, и я хочу, чтобы иметь возможность быть в состоянии сделать две вещи ...возникли проблемы с изображения загружать при JavaScript

1) Изображения быть предварительно загружены с использованием списка файлов имена. Не каждое имя файла в списке имеет файл, соответствующий ему.

eg) pic04.jpg может не существовать, даже если он находится в списке.

Поэтому, когда я предварительно загружаю, мне бы хотелось выяснить, существует ли изображение, если это возможно.

2) Сейчас функция просто предварительно загружает все 150 изображений, используя изображения [i] = new Image(); изображения [i] .src = "путь/to/my/images /" + imageName [i] + ".jpg";

Функция выполняется очень быстро, но изображения, похоже, не были предварительно загружены. Нужно ли мне что-то делать, чтобы сайт дождался загрузки изображений до продолжения?

Любые идеи?

+0

Что означает «не кажутся»? Вы тестировали, что они предварительно загружены или нет? Также я бы опубликовал полный код, используемый вами, для предварительной загрузки. Этот вопрос не дает достаточной информации, чтобы ответить на него. – jfar

+0

На какие у вас есть изображения? Ваша проблема может быть частично решена путем создания больших изображений со всеми изображениями, которые вы хотите предварительно загрузить, но это зависит от того, с какими изображениями вы работаете, и для чего. –

ответ

1

Функция выполняется очень быстро, но изображения, похоже, не были предварительно загружены.

изображения загружаются асинхронно. Функция завершает выполнение, но браузер продолжает загружать изображения в фоновом режиме.

Поэтому, когда я предварительно загружаю, я хотел бы выяснить, существует ли изображение, если это возможно.

Да, это возможно. Вы можете использовать обработчик события onerror на объекте Image

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'; 
Смежные вопросы