2010-01-17 1 views
12

Почему Google Analytics запрашивает файл GIF?Почему Google Analytics запрашивает GIF-файл?

Это потому, что GIF позволяет получить доступ к большему количеству данных, чем JavaScript. Получать IP-адрес пользователя?

+0

«Все, что я реализовал, были только JavaScript», тогда почему вы задаете этот вопрос, если он не использует gif? –

+2

@ Chacha102: Google Analytics JavaScript делает запрос на изображение GIF. –

+0

@ Chacha102: Chechl страница Google о запросе gif request. http://code.google.com/intl/en-US/apis/analytics/docs/tracking/gaTrackingTroubleshooting.html#gifParameters – GmonC

ответ

14

Даже с включенным JavaScript, аналитика запрашивает файл GIF. Если вы посмотрите на параметры GET изображения, он содержит много информации о браузере. Материал как utmsr=1280x1024 (размер экрана). В коде Google есть list of parameters.

Он использует запрос изображения для отправки информации о браузере без XMLHttpRequest.

Теперь, чтобы ответить на исходный вопрос, Google, вероятно, делает это, чтобы обойти ограничения cross-domain XMLHttpRequest.

+2

Я считаю, что Google использует запрос изображения просто потому, что им не нужно получать какую-либо информацию, только отправляю. Запрос изображения - самый легкий способ сделать это. – mylesmg

16

javascript Google должен как-то передавать детали вашего просмотра страницы на свои серверы. Ajax не может использоваться во всех доменах, поэтому единственный способ отправить информацию - запросить файл с сервера Google, передав необходимую информацию в строке запроса. Чтобы облегчить это, необходимо запросить некоторую форму контента с использованием стандартного тега HTML. Самый простой способ сделать это без влияния на страницу - загрузить 1x1 прозрачный gif. Обратите внимание, что в случае скрипта Google (и других) это изображение фактически не добавляется на страницу. Он просто загружается с помощью заявления javascript

var img1 = new Image(); 
img1.src = 'http://path/to/file.gif?otherinfohere'; 

Загружает изображение, не добавляя его на страницу. Эта информация также может быть загружен с помощью тега сценария следующим образом:

<script src="http://path/to/script.js?otherinfohere" type="text/javascript"><script> 

Однако пользователи, более вероятно, имеют JavaScript заблокированного чем изображения, так что безопаснее маршрут запросить изображение. Что касается того, почему они используют gif вместо того, чтобы сказать, jpg, gif безопаснее, если браузер-мошенник фактически добавляет изображение на страницу. Прозрачный gif вряд ли негативно повлияет на макет, где, поскольку 1x1 jpg оставит 1 пиксельную точку где-то на странице.

Редактировать: Чтобы добавить к моим комментариям о пользователях, заблокировавших javascript, в тег noscript можно добавить запрос gif, содержащий статическую информацию, чтобы обеспечить базовое отслеживание даже в том случае, если javascript отключен. Насколько мне известно, GA не делает этого, но некоторые другие поставщики веб-аналитики делают.

12

http://www.perlmonks.org/?node_id=7974

Наименьшее transperant GIF является 43 байт.

http://garethrees.org/2007/11/14/pngcrush/

Наименьшее transperant PNG-24 (которые не могут быть показаны в старых браузерах тоже) является 67 байт.

http://www.techsupportteam.org/forum/digital-imaging-photography/1892-worlds-smallest-valid-jpeg.html

наименьшее (непрозрачного) JPEG является 134 байт.

Математика проста! Больший размер = больше затрат.

+3

** 67 ** байт, а не 73 байта. Вы должны прочитать весь путь до конца для перфоманса! –

1
  1. вы можете использовать __utm.GIF-трекер без JavaScript (ж какой сервер помощи)

  2. вы можете использовать его в сообщении электронной почты (со некоторой программной помощи перед отправкой по электронной почте)

  3. ежа был разработан до AJAX был популярен (2005)

Это не имеет ничего общего с кросс-доменом. Они могли использовать JSONP для этого.

+0

JSONP предназначен для получения данных, и Google Analytics нужно передавать данные. – alex

+2

тег изображения предназначен для получения данных, а OH WAIT. вы можете поместить параметры запроса в запросе JSONP так же, как и для изображения ... и вернуть значение 204 –

Смежные вопросы