Задача фрагмента асинхронной аналитики состоит в том, чтобы загрузить более интенсивный скрипт, который проверяет браузер пользователя на наличие всех видов информации, чтобы идентифицировать их, чтобы он мог отчитываться перед сервером аналитики.Однако, поскольку все эти аналитические данные не имеют решающего значения для удобства использования страницы, Google желает запускать ее по удобству браузера.
Теоретически, они могут посоветовать программисту добавить асинхронный фрагмент кода в самый низ.страницы, как последний элемент тела.Однако, чтобы позволить программисту захватывать события пользовательского интерфейса для отправки в аналитику, он хочет сделать переменную _gaq
для использования на раннем этапе.Например, у вас может быть кнопка: <button onclick="_gaq.push(...)">Track</button>
.Сделав _gaq
доступным на раннем этапе, небольшой кусочек кода в асинхронном фрагменте поставит эти сообщения в очередь, а более тяжелый ga.js
позже отправит их на сервер.
Теперь некоторые подробности реализации : ga.js
загружается путем добавления нового элемента <script>
в заголовок документа с установленным атрибутом async
.IE и WebKit будут асинхронно загружать теги <script>
, вставленные из сценариев.Firefox и Opera будут учитывать атрибут async
, а также загружать скрипт асинхронно.В любом случае, ga.js
загружается асинхронно, для удобства браузера.
Наконец, после выполнения ga.js
без блокировки рендеринга страницы из-за асинхронной загрузки он может выполнить тяжелую работу по сбору всехданных пользователя и любых сообщений в очереди _gaq
и отправьте их на сервер.
Сводка: Этот подход использует небольшой встроенный скрипт, который инициализирует некоторые ключевые переменные, такие как _gaq
что ваша страница может получить доступ до того, как будет готов полный скрипт ga.js
.Этот небольшой скрипт также динамически добавляет тег <script src="ga.js">
к документу таким образом, что большинство браузеров загружают и выполняют его асинхронно, не блокируя отображение страницы или оценку критических сценариев.