ошибка изображения javascript в случае отсутствия ответа 200

#javascript #handler #onload #http-status-code-302 #onerror

#javascript #обработчик #onload #http-status-code-302 #ошибка onerror

Вопрос:

Я должен посчитать время загрузки изображения. За это отвечает onLoadHandler.

 <img onError="onErrorHandler(this);" onLoad="onLoadHandler(this);" alt="" border='0' width='1' height='1'   src='http://exmaple.com/02.jpg'/>
  

Это работает нормально, если изображение является обычным файлом с ответом сервера 200.

Но партнеры предоставляют цепочку из 302 перенаправлений, и onError срабатывает при первом перенаправлении. Поэтому я никогда не получаю реальное время загрузки изображения.

Есть ли какой-либо обходной путь?

Спасибо

Комментарии:

1. Интересный вопрос, хотя я не думаю, что будет обходной путь. onload и onerror поддержка изображений традиционно очень ненадежна в браузерах

2. @Lev AFAIK, onerror это не официальное событие для изображений — я не знаю ни одного хорошего источника, который определяет или объясняет, что именно он должен делать.

3. @Lev вообще, по моему опыту, w3schools не является хорошим источником по таким глубоким проблемам, как эта… В любом случае, событие поддерживается в браузерах, но оно официально не определено в стандарте. Следовательно, то, что происходит в случае 302 перенаправлений и тому подобного, может варьироваться от браузера к браузеру.

4. Даже если он запускает onError, в конечном итоге он все равно запускает onLoad? (Я предполагаю, что нет, исходя из контекста, но подумал, что попрошу уточнить)

5. идентификатор запускает onLoad, если в конечном итоге он получает ответ 200 с допустимым изображением.

Ответ №1:

Соответствует ли размер изображения, на которое вы перенаправляетесь, тому же размеру, что и изображение, которое вы запросили? Если нет, вы можете использовать это для обнаружения ошибки.