Это немного проблемный пример, по многим направлениям.
Вы можете организовать свои сценарии таким образом, чтобы вам не нужно было вставлять этот JS. Например, у вас может быть файл common.js, который запускает этот фрагмент, другие подобные фрагменты и упрощает ваш код.
Кроме того, это, похоже, пробудило полицию архитектуры "никогда не вставлять в JavaScript". Оказывается, иногда лучше встроить JavaScript, например, взглянуть на общий фрагмент из Google Analytics.
Почему Google предлагает включить этот крошечный скрипт?
- Поскольку 20% посещений страницы вы получаете незагрунтованный кеш
- Если у вас отсутствует кэш-память, вероятно, потребуется открыть новое соединение с вашим сайтом (1 поездка туда и обратно), а затем данные, доставленные во 2 поездке туда и обратно. (если вам повезет, вы можете использовать соединение keepalive, и оно сокращается до 1 поездки туда и обратно.
- Для обычного «глобального» веб-приложения на английском языке вы ищете типичное время прохождения сигнала в 110 мс для службы, размещенной в США. Если вы используете CDN, число, вероятно, будет вдвое меньше.
- Даже если ресурс локальный, веб-браузеру все равно может понадобиться доступ к диску, чтобы получить этот крошечный файл.
- Не асинхронные или отложенные теги JavaScript-скрипта блокируют , если этот скрипт находится где-то посередине вашей страницы, он будет зависать до тех пор, пока скрипт не загрузится.
С точки зрения производительности, если доступны только 2 варианта:
- Поместить встроенный бит длиной 50 символов JavaScript
- Поместите 50 символов в отдельный файл и подайте его.
Учитывая, что вы являетесь хорошим веб-гражданином и сжимаете весь свой контент, объем дополнительной полезной нагрузки, которую он добавляет, незначителен по сравнению с 20-процентным риском предоставления людям значительной задержки. Я бы всегда выбрал # 1.
В несовершенном мире очень редко бывает такой простой и понятный набор опций. Существует вариант 3, который включает асинхронную загрузку jQuery и получение этой функциональности из общей области.