Встраивание кода ga.js в способ, который вы описываете (с жестко закодированным тегом <script>
), действительно блокирует, и если вы загружаете скрипт таким образом, лучшим вариантом считается его загрузка непосредственно перед *Тег 1002 *.Но это не рекомендуемая практика, если вы используете новый асинхронный код. Google явно рекомендует разместить новый асинхронный код в <head>
.
Новый асинхронный код неблокирует двумя способами.Во-первых, он ставит в очередь переменные для страницы в глобальной переменной _gaq.Таким образом, данные готовятся в любом случае.
Затем, как описано в этом SO-ответе , использование javascript напрямую для записи сценария, так как в новом асинхронном коде нет блокировки (этот метод прямого ввода является способом достижения асинхронного-ness, даже в браузерах, которые непосредственно не наблюдают атрибут async
).Остальная часть сайта может продолжать загружаться, если по какой-либо причине серверы Google не работают или медленно реагируют.И это только в том случае, если у пользователя нет кэшированного ga.js, как это делают многие, поскольку ga.js используется на многих популярных веб-сайтах.
Преимущество всего этого заключается в том, что чем раньше ga.js загружается и может передавать объект _gaq в Google, тем больше вероятность того, что вы соберете ВСЕ ваши потенциальные данные, например данныепользователи, которые очень быстро нажимают на вашу страницу.Это особенно важно для «больших» веб-сайтов, у которых, как правило, много постоянных пользователей, которые следуют привычкам быстрого щелчка.
Если вы скептически относитесь, протестируйте его с помощью инспектора загрузки страниц, такого как инструменты разработчика webkit.Я тщательно его протестировал и не нашел никаких признаков значительных блокировок при использовании асинхронного кода в </head>
, как описано.