По большому счету они приводят к практически одинаковым результатам. Различия в деталях:- согласно http://www.w3.org/TR/html5/the-end.html#the-end, скрипты с атрибутом defer выполняются всё же на один шаг раньше, чем возникает событие DOMContentLoaded (т.е. начнут выполняться jQuery-обработчики, добавленные через .ready());
- метод .ready() гарантирует вам кроссбраузерность, а defer пока что не полностью;
- метод .ready() может опционально выполнять ряд других задач. Например, он может продолжать ожидать окончания асинхронной загрузки отдельных элементов, даже когда DOM полностью сформирован, если программисту так было угодно (для этого предусмотрен метод http://api.jquery.com/jQuery.holdReady/);
- и т.д. =)
|