Загрузка и выполнение Javascript сериализуется браузером (если вы не используете что-то вроде head.js
), но проблема в том, что DOM должен быть доступен для сценария, чтобы изменить его. Событие готовности jQuery вызывает после того, как DOM становится доступным, поэтому браузер уже начал запрашивать ресурсы, на которые есть ссылки в HTML.
Таким образом, если вы поместите Javascript перед тегом изображения, он не сможет найти теги изображения, и когда все будет готово, загрузка уже началась. Я не знаю ни о каких событиях, которые происходят перед загрузкой изображения (только одно для прерываний), поэтому самый чистый метод - это создать HTML с измененными атрибутами src
в первую очередь.
В качестве альтернативы, поместите src
в другой атрибут на изображении (например, data_orig_src
) и запустите сценарий, чтобы установить src
в data_orig_src
на каждом изображении после того, как документ будет готов. Используйте CSS, чтобы скрыть изображения перед тем, как изменить src
, чтобы пользователь не видел значок разбитого изображения. Я думаю, что это, вероятно, лучше, чем добавлять изображения после факта, потому что вам не нужно отслеживать, где изображения должны быть размещены в DOM, и это также должно работать лучше.
Конечно, если вы можете изменить сервер для использования data_orig_src
вместо src
, почему бы просто не поставить соответствующий src
в тег в первую очередь ...