Просмотр асинхронных вызовов JavaScript - PullRequest
4 голосов
/ 19 января 2011

Я обновил скрипт отслеживания для Google Analytics до асинхронной версии.Единственная проблема, которую я имею, - это возможность отладки вызовов.Мне удалось отследить более старую версию в Firebug, используя подход, описанный на этом сайте , но теперь я не могу просматривать вызовы gaq.push.Есть ли способ просмотреть это в Firebug или другом инструменте?

Это моя тестовая страница, которую я пытаюсь отследить:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Google Analytics Event Tracking</title>
    <script type="text/javascript">
        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-13250000-1']);
        _gaq.push(['_trackPageview']);

        (function() {
            var ga = document.createElement('script');
            ga.type = 'text/javascript';
            ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; 
            s.parentNode.insertBefore(ga, s);
        })();  
    </script>
</head>
<body>
Lorem ipsum dolor sit amet....<br />
<script type="text/javascript">
    _gaq.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']);
</script>
</body>
</html>

Я пытаюсь подтвердить, что "_gaq.push" действительно работает.

Ответы [ 4 ]

2 голосов
/ 07 февраля 2012

Я просто столкнулся с той же проблемой, и поэтому я выполнил поиск в Google и попал на этот вопрос о переполнении стека. Я тоже подумал, что это просто отобразится как запрос xhr в firebug, поскольку это будет простой способ отслеживать событие. Оказывается, они используют 1x1 пикселей GIF для отслеживания! Если вы посмотрите на вкладку Net> All в Firebug, вы увидите, что запрос GET выглядит примерно так:

https://ssl.google-analytics.com/__utm.gif?utmwv=5.2.4&utms=28&utmn=1818843630&utmhn=dev-marketplace.asos.com&utmt=event&utme=5(my-home*sub-nav-click*blog-posts)&utmcs=UTF-8&utmsr=1920x1080&utmvp=1920x618&utmsc=24-bit&utmul=en-gb&utmje=0&utmfl=11.1%20r102&utmdt=Build%20%23%20Developer%20Live%20Feed%20ASOS%20Marketplace&utmhid=1950484512&utmr=-&utmp=%2Flivefeed%2Fblogposts&utmac=UA-23521416-1&utmcc=__utma%3D159014575.706813547.1328542287.1328542287.1328604985.2%3B%2B__utmz%3D159014575.1328542287.1.1.utmcsr%3D(direct)%7Cutmccn%3D(direct)%7Cutmcmd%3D(none)%3B&utmu=6AAAAAAAAAAAAAAAQ~

Это параметры, отправленные в запросе

utmac   UA-23521416-1
utmcc   __utma=159014575.706813547.1328542287.1328542287.1328604985.2;+__utmz=159014575.1328542287.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
utmcs   UTF-8
utmdt   Build # Developer Live Feed ASOS Marketplace
utme    5(my-home*sub-nav-click*blog-posts)
utmfl   11.1 r102
utmhid  1950484512
utmhn   dev-marketplace.asos.com
utmje   0
utmn    1818843630
utmp    /livefeed/blogposts
utmr    -
utms    28
utmsc   24-bit
utmsr   1920x1080
utmt    event
utmu    6AAAAAAAAAAAAAAAQ~
utmul   en-gb
utmvp   1920x618
utmwv   5.2.4
1 голос
/ 19 января 2011

Плагин TamperData для Firefox очень удобен.Он позволяет вам видеть весь HTTP-трафик, с фильтрацией и т. Д. У него также есть средство, позволяющее изменять заголовки до того, как браузер запустит HTTP-транзакцию, что выглядит довольно здорово, но я никогда не использовал его.

0 голосов
/ 19 января 2011

Если вы не видите запросов, происходящих в FireBug, то они не происходят. Google Analytics каким-то образом не обходит браузер способностью отслеживать, какие HTTP-запросы он делает, ваш код просто не выполняет их.

0 голосов
/ 19 января 2011

Я делаю это, просматривая вкладку «Ресурсы» в Chrome Developer Tools:

http://drktd.com/45VJ (обратите внимание на желтый «XHR» - это означает XMLHttpRequest, который является своего рода вызовом »скорее всего, вы ищете)

Если вам нужен детальный просмотр каждого запроса в / из вашей системы, вам действительно нужно установить Charles Proxy. Это лучший в своем роде для этоготакие вещи.

...