С встроенным скриптом, подобным тому, что вы цитировали, вряд ли будет большая разница;однако каждый раз, когда HTML-анализатор браузера обнаруживает тег script
, он:
- приходит к полной остановке
- Создает строку текста в теге дов первый раз, когда он видит строку
"</script>"
- Передает этот текст интерпретатору JavaScript, прислушиваясь к выводу, который интерпретатор отправляет, когда вы выполняете
document.write
- Ожидание интерпретатора дляfinish
- Вставляет накопленный вывод, полученный в поток синтаксического анализа
- Продолжает анализ
Таким образом, увеличение количества повторений этой последовательности теоретически можетувеличить время загрузки страницы.Это также влияет на степень, в которой анализатор может «смотреть вперед» в потоке токенов, что может сделать его менее эффективным.
Все это звучит действительно драматично, но вам придется профилировать реальную страницу вразличные браузеры, о которых вы заботитесь, чтобы определить, оказали ли они реальное влияние.
Итак, в общем, объедините их настолько, насколько это возможно.Если вы не можете разумно объединить пару, не беспокойтесь об этом до тех пор, пока вы не столкнетесь с реальной проблемой.
Выше приведено для встроенного скрипта.Естественно, если у вас есть несколько тегов script
, относящихся к группе внешних файлов JavaScript, у вас также будет проблема, что каждый из этих файлов должен быть загружен, а инициирование HTTP-запроса - это дорогая (сравнительно) вещь, и поэтомулучше всего объединить их в один файл.
Некоторые другие соображения, которые следует учитывать:
- Наличие большого количества
script
тегов, разбросанных по всему HTML, может сделатьСложность обслуживания сценария - Разделение HTML-кода и сценария на отдельные файлы помогает ограничить степень их объединения, что опять-таки помогает в обслуживании.
- Если поместить сценарий в отдельный файл,можно запустить этот файл через минифайеры / компрессоры / упаковщики, минимизируя размер вашего кода и удаляя комментарии, таким образом, вы можете оставлять комментарии в своем исходном коде, зная, что эти комментарии будут приватными
- Размещение ваших сценариев во внешнихфайлы дают вам возможность разделить весельеи затем объединить их в один файл для страницы (сжатый / уменьшенный / упакованный) для эффективной доставки в браузер
Подробнее: