В заголовке сайта, над которым я работаю, у меня есть целая куча внешних javascript-кодов (jQuery, плагины, основной js-файл для функций сайта и т. Д.). Я решил поставить на них тег async="async"
, чтобы повысить производительность в Chrome и Firefox.
Я заметил, что после этого некоторые функции, вызываемые в различных частях тела сайта, помечаются как "не определенные" в консоли ошибок. Я протестировал сайт в IE и Opera (браузеры, которые не поддерживают атрибут async), и он работает просто отлично. Затем я удалил атрибут async из всех сценариев, и он снова заработал в Chrome и Firefox.
Я предполагаю, что мое использование атрибута async приводит к тому, что некоторые скрипты заканчивают загрузку до вызова других, и те, которые закончили загрузку, являются скриптами, которые имеют зависимости (например, jQuery или плагин), которые не закончили загрузку которая выдаст "неопределенную" ошибку, которую я вижу.
Если мое понимание этого неверно, пожалуйста, поправьте меня. Если то, что, по моему мнению, происходит, - это то, что на самом деле происходит, есть ли какое-либо отношение к этому при сохранении атрибута async для всех тегов сценария?