Usar asíncrono no funciona $ no está definido

Tengo un error si utilicé async en la etiqueta de script como a continuación

<script async src="main.js"></script>

El error se muestra solo en Chrome diciendo

Uncaught ReferenceError: $ is not defined

Si eliminé el asíncrono de la etiqueta del script, no hay más errores en mi consola y todo funciona bien.

¿Tienes alguna idea de por qué tengo este problema?

EDITAR

El guión debajo se coloca dentro de la etiqueta de la cabeza

<!-- 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 se agrega al pie de página.

<script async src="../js/main.js"></script>

He encontrado una pregunta similar en stackoverflow.Cargue jquery asincrónicamente antes de otros scripts

Tuve que cambiar asíncrono para diferir, ya no hay más problemas en Firefox, Chrome e IE9.

Byt se rompe en IE8 e IE7 por completo. jQuery deja de funcionar si uso diferir.

Respuestas a la pregunta(7)

Su respuesta a la pregunta