Звучит так, будто вы помещаете скрипт в тело.Если вы поместите его в тело, вы отдадите все свои силы поставщику браузера.
Каждый браузер будет обрабатывать выполнение скрипта в теле немного по-разному.Большинство будет запускать его в том порядке, в котором он был проанализирован.Точное время, когда это произойдет, будет другим, что приведет к другому поведению в других браузерах.
Объяснение :
Другими словами, если ваш глобально ограниченный код не переноситсяв функции помещается над элементом DOM, который еще не отображался, тогда этот код вызовет ошибку, так как рассматриваемый объект не определен.
Когда код находится ниже элемента,браузер, как правило, успевает визуализировать элемент DOM до запуска кода.
Просто беспорядочно видеть JavaScript, натянутый на весь документ HTML.Это создает кошмар обслуживания.Просто спросите этого автора, который целый день тратит на распутывание запутанных JavaScript и HTML, чтобы найти неприятную ошибку в коде: Отладка HTML и JavaScript с помощью Firebug
Предположим, вы вносите коррективы в HTMLи перемещать элементы на странице.Представьте себе весь JavaScript, который вам нужно было бы перетасовать.
Решение:
Чтобы это не стало проблемой, поместите свой сценарий в нужное место ввнешний файл JavaScript, связанный в разделе заголовка в виде тега скрипта.Сценарий не будет работать до тех пор, пока DOM не будет полностью загружен, что предотвратит ошибки, связанные с элементами, которые еще не находятся в области действия, и не устранит детали беспокойства о порядке загрузки файлов.