Есть два варианта создания действительно ненавязчивых сценариев:
- включение внешнего файла сценария через тег сценария в разделе заголовка
- включение внешнего файла сценария через тег сценария в нижней части тела (до
</body></html>
)
Второй вариант может быть быстрее, поскольку исходное исследование Yahoo показало, что некоторые браузеры пытаются загрузить файлы сценариев, когда они попадают в тег сценария, и поэтому не загружают остальную часть страницы, пока не закончат работу. Однако, если в вашем скрипте есть «готовая» часть, которая должна выполняться, как только DOM будет готова, вам, возможно, понадобится держать ее в голове. Другая проблема - это макет - если ваш скрипт будет изменять макет страницы, вы хотите, чтобы он загружался как можно раньше, чтобы ваша страница не тратила много времени на перерисовку себя на глазах у пользователей.
Если внешний сайт сценария находится в другом домене (например, внешние виджеты), возможно, стоит разместить его внизу, чтобы избежать задержки загрузки страницы.
И для любых проблем с производительностью сделайте свои собственные тесты - то, что может быть правдой во время проведения исследования, может измениться с вашей собственной локальной настройкой или изменениями в браузерах.