#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:
Соответствует ли размер изображения, на которое вы перенаправляетесь, тому же размеру, что и изображение, которое вы запросили? Если нет, вы можете использовать это для обнаружения ошибки.