У меня возникла ошибка, если я использовал async в теге script, как показано ниже
<script async src="main.js"></script>
Ошибка отображается только на хроме, говоря
Uncaught ReferenceError: $ is not defined
Если я удалил асинхронный код из тега script, в моей консоли больше нет ошибок, и все работает нормально.
У вас есть идея, почему у вас есть эта проблема?
ИЗМЕНИТЬ
Ниже script помещаются внутри тега заголовка
<!-- JS -->
<script async src="../js/jquery/jquery-1.10.1.min.js"> </script>
<script async src="../js/vendor/modernizr-2.8.2.min.js"></script>
<script async src="../js/asynchronous-resources/2014-06-03-asynchronous-resources.js"></script>
<!-- IE JS -->
<!--[if !IE]><!--><script async src="../js/ie10.js"></script><!--<![endif]-->
main.js добавляется в нижний колонтитул.
<script async src="../js/main.js"></script>
Я нашел аналогичный вопрос о stackoverflow. Загружать jquery асинхронно перед другими скриптами
Мне пришлось изменить async, чтобы отложить больше, теперь нет проблем в firefox, chrome и IE9.
Byt он полностью разбивается на IE8 и IE7. jQuery перестает работать, если я использую defer.