Объясняю. Если скрипт находится в <head> , то страница не отобразится пока скрипт не будет загружен. Очень часто на сайте подключают локальную копию jQuery, к тому же без gzip-сжатия. Плюс три-четыре плагина, иногда вобще ввиде сорцов. В итоге имеем до 200 кб объема.
Пару милисекунд говоришь? В моем регионе многие сидят на 128кбит/с, это 12секунд времени. На более продвинутом тарифе - 512кбит/с это будет три секунды. А еще прибавь объем страницы + объем стилей + пинг на нераспараллеливаемые запросы - это все тоже нужно ждать. А теперь возьми в руки мобилу или хотя бы планшет и открой тот же javascript.ru. Пару милисекунд открывается, да? И это хорошо если 3G ловит. Белый экран ожидания на мобиле - это чаще всего заслуга скриптов, любезно засунутых в <head>. Ты можешь считать как хочешь. Я считаю так как вижу ситуацию со своей стороны.
Подробнее
тут или вот нашел на javascript.ru перевод:
http://javascript.ru/optimize/perfor...ules#js_bottom . Вот статья на сайте по оптимизации:
http://webo.in/articles/habrahabr/56...ng-javascript/
Насчет валидности. Да, мне не стоило давать ссылку на валидатор и говорить слово "валидность". Вот
спецификация, определяющая что атрибут type необязателен. Вот
рекомендация от Google не указывать атрибут type. Или
тут на русском.