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