Будет появление или производительность моего веб-сайта быть затронутым Google Analytics?
появление Вашего веб-сайта никогда не будет затрагиваться Вашим использованием Google Analytics - мы не помещаем изображений или текста на Ваших страницах. Аналогично, на производительность Ваших страниц не повлияют за возможным исключением самой первой загрузки страницы после добавления кода отслеживания. Это сначала pageview называет JavaScript на серверах Google, которые могут взять немного дольше, чем регулярная загрузка страницы. Последующие просмотры страниц будут использовать кэшированные данные и не будут затронуты .
важно отметить, что много веб-сайтов в Интернете используют тот же JavaScript от того же местоположения на серверах Google, поэтому только редко будет новый пользователь приезжать в Ваш сайт, уже не кэшируя тот файл локально.
Несмотря на то, что загрузка и запуск самого ga.js быстрая, я заметил, что по всей Европе, на разных подключениях / компьютерах / ОС / браузерах, это ОСНОВНОЕ отставание (от 0 до 30 ( тридцать ) секунд) между последним байтом HTTP-запроса и первым байтом HTTP-ответа.
Это понятно, учитывая огромную популярность GA, но это происходит до запуска window.onload. Таким образом, если ваша страница использует JS и ваши пользователи сталкиваются с этой задержкой, они не собираются анализировать, какой компонент отвечает за это, - они предположят, что ваш сайт ужасно медленный.
Обходным путем для этого является регистрация window.onload. функция, которая добавит скрипт GA. Пример (для простоты используем « window.onload = function ()
»:
window.onload = function() {
var gaJsHost = (("https:" == document.location.protocol)
? "https://ssl."
: "http://www.");
var s = document.createElement('script');
s.src = gaJsHost + "google-analytics.com/ga.js";
s.type='text/javascript';
var bodies = document.getElementsByTagName('body');
if (bodies.length > 0) {
bodies[0].appendChild(s);
} else { // this should never happen, but sometimes does (curse you IE6!)
document.appendChild(s);
}
// this says 100ms, but won't happen until ga.js is loaded
window.setTimeout(function(){
if (window['_gat']) {
var pageTracker = _gat._getTracker("UA-xxxxxx-x");
pageTracker._trackPageview();
}
},100);
}
Фактически демонстрация кода для этой работы на C слишком сложна для поста SO. Но объяснить основную концепцию выполнимо.
То, что вы действительно создаете здесь, это система шаблонных пакетов свойств. Единственное, что вам понадобится для продолжения работы, - это некоторая ассоциативная структура, такая как хеш-таблица. Я бы сказал, пойти с std :: map, но вы упомянули, что это было решение только для Си. Ради обсуждения я просто собираюсь предположить, что у вас есть какая-то хеш-таблица.
Вызов «create_struct» должен будет возвращать структуру, которая содержит указатель на хеш-таблицу, что делает const char *
практически равным size_t. Эта карта определяет, что вам нужно для создания нового экземпляра структуры.
"страх" Метод по существу создаст новую хеш-таблицу с таким же количеством членов, что и у хеш-таблицы шаблона. Давайте на секунду выбросим ленивое измышление и предположим, что вы создали всех участников заранее. Метод должен будет зацикливаться на хеш-таблице шаблона, добавляя элемент для каждой записи и malloc'ing кусок памяти указанного размера.
Реализация instance_get_member просто сделает поиск по карте по имени. Хотя подпись и модель использования должны будут измениться. C не поддерживает шаблоны и должен выбрать общий тип возврата, который может представлять все данные. В этом случае вам нужно будет выбрать void *
, поскольку именно так будет необходимо хранить память.
Относительно загрузки сервера сценарии вытягивают с серверов Google, не Ваших, таким образом, не будет никакого значимого серверного влияния. Очевидно, Ваши страницы все будут немного больше, чем они были без кода для загрузки JavaScript, но Вы никогда не будете замечать различия.
Лично я действительно не вижу, что была бы большая часть различия вообще, Ваш браузер будет кэшировать ее после первого запроса и использовать ее там после друг на друге страница.
сценарий загружается в самом конце страницы также, таким образом, все остальное должно уже быть загружено.
Отметьте также, что я видел, что GA загружает немного файла GIF хешем, присоединенным к нему..., но я сомневаюсь, что размер этого будет иметь большую часть влияния на производительности.
Иногда я испытываю задержки на страницах, которые используют его. Я могу отследить проблему к GA, так как это - единственный сценарий, ожидающий, чтобы быть загруженным. Я знаю, что этого не должно происходить, но с некоторой страницей запрашивает, чтобы она сделала скорее случайным образом. Не то, чтобы это обычно имеет значение, так как целая страница уже загружается так, можно начать читать. Но это становится небольшой проблемой со страницами, которые используют ajax или обычно наполняют на документе готовое событие. Таким образом, я добавляю его к своим фильтрам adlock.
Опыт пользователя определенно замедлен GA на медленном соединении.
Даже при помещении Кода аналитики в нижней части кода с пользовательской точки зрения, которую не загрузился сайт, пока небольшая синяя панель внизу не ушла.
Это означает, что Ваш сайт будет 'чувствовать себя' медленнее, в зависимости от (неожиданное удивление), насколько отстающий Ваше пользовательское соединение. Для Пользователей удаленного доступа и пользователей, получающих доступ к Вашим веб-сайтам из-за границы (где задержка запроса является более высоким беспокойством), дополнительный запрос будет определенно означать немного меньше быстро реагирующего веб-сайта.
Однако, учитывая, что каждое изображение, каждый файл JavaScript и любой другой внедренный объект являются дополнительным запросом, если Вы уже используете богатое расположение веб-сайта, это не причина не использовать аналитику.
Да.
я чувствую, что скорость просмотра намного лучше, так как я добавил аналитику Google к фильтру addblock.
Нет.
при помещении его в конец, это будет загружено в последний раз, поэтому даже если Погуглит серверы, являются немного медленными посетители никогда не будут замечать.
ga.js 9.58k, и регистрирующийся вызов о 1.2k. js будет кэшироваться после первой загрузки (я предполагаю даже через сайты?), таким образом, это - действительно незначительный мудрый размер.
Да этому действительно поражали производительность, см. http://dotnetperls.com/Content/Google-Analytics-Speed.aspx . Ускорять его рекомендуемый, что Вы загружаете ga.js файл локально и вызов что вместо этого, Объясненный здесь http://www.askapache.com/javascript/google-analytics-speed-tips.html .
Помните, что не каждый пользователь был быстро американо-базирующимся соединения.
, Если Вы находитесь на медленном соединении из страны за пределами США, различие является, конечно, заметным.
Люди, выполняющие более медленные компьютеры или браузеры вне нормы (т.е. старые версии, мобильные телефоны и т.д.), могут все быть затронуты временем выполнения JavaScript.
Редактирование: Google выпустил Асинхронное Отслеживание . Я еще не попробовал его, но я предполагаю, что это решает упомянутые ниже проблемы.
я думаю, что Google Analytics может сделать веб-сайт медленнее, потому что он делает happe, который ga.js берет noticably долго для загрузки, и это может вызвать некоторые проблемы:
, Если у Вас есть JavaScript, который включает window.onload
(который включает старый синтаксис школы <body onload="">
), затем он огонь привычки до веб-страницы имеет загрузку complety. Используя что-то как готовое событие jQuery могло бы исправить это, все же.
Большинство браузеров не заполняет имена и пароли сохраненного пользователя, пока веб-страница не загрузилась полностью.
для среднего пользователя не легко определить это, веб-страница просто ожидает сценария Аналитики для загрузки, таким образом, они могли бы ожидать небольшой анимации загрузки для окончания даже при том, что страница по существу закончила загружать.
Вы могли следовать за предложением niallbrowne загрузки ga.js и обслуживания от Вашего собственного веб-сервера. Но это должно быть последним средством, так как ga.js кэшируется через веб-сайты и только истекает один раз в неделю.