Я пытаюсь реализовать функцию «забей и забудь» при вызове img src = ... с веб-страницы и ищу наиболее надежный метод. Почему?
В большинстве систем веб-отслеживания, таких как Omniture или Coremetrics, существует запрос на img src, который также содержит все данные для записи в системе отслеживания. Как и любой другой запрос изображения, страница пытается дождаться ответа, что может замедлить загрузку страницы.
То, что я пытаюсь сделать, - это внедрить систему отслеживания, в которой время отклика веб-страницы имеет гораздо более высокий приоритет, чем то, был ли запрос фактически успешным, и поэтому ожидание ответа совершенно не требуется при любых условиях, включая ...
- Сервер получил запрос и может легко ответить (HTTP-код ответа 200)
- Сервер получил запрос, но застрял и все еще может с готовностью ответить ошибкой 500 с кодом ответа
- Сервер вообще не работает
- Сервер не найден из-за глюков DNS
- Запрос попал на сервер, но он настолько застрял, что на его получение требуется заметное время.
Я уже исследовал использование объекта XMLHttpResponse и асинхронного запроса, который может тихо завершиться с ошибкой, но вы быстро столкнетесь с той же политикой происхождения и буллом кода совместимости браузера. Я полагаю, что простой запрос jane img по-прежнему является лучшим механизмом запроса, но я пытаюсь разработать лучшую реализацию «забей и забудь» с наименьшим количеством кода. Пока я знаю, что могу ...
OnError = "this.parentNode.removeChild (это)"
OnLoad = "this.parentNode.removeChild (это)"
Это хорошо работает в сценариях с 1 по 4, где есть конечный и предсказуемый вывод на запрос. Это ломается в сценарии 5, которого можно было бы избежать, если бы было что-то промежуточное.
Мне нравится идея увидеть, будет ли this.src.readyState == "complete", но я вижу, что иду по пути совместимости браузеров и адских условий гонки, если было бы разумно подключиться к сообществу StackOverflow первый.
Кто-нибудь имеет опыт с этим и хорошее решение?