Почему код отслеживания Google Analytics выполняется первым? - PullRequest
2 голосов
/ 17 июля 2011

Я играл с пользовательскими переменными в Google Analytics и не был уверен, почему на самом деле работает следующее. Почему код отслеживания Google выполняется первым, тем более что он находится внизу страницы?

Оба сценария находятся в самозапускающихся функциях, так как же javascript определяет, какой из них выполнять первым?

 // top of the page
  <script type="text/javascript">
              $(function ()
              {
                    _gaq.push(['_setCustomVar', 1, 'Account', 'PartTime', 1]);
              });
        </script> 


// bottom of the page
        <script type="text/javascript">

            var _gaq = _gaq || [];
            _gaq.push(['_setAccount', 'UA-xxxxxxxxxx']);
            _gaq.push(['_setDomainName', '.xxxxxxxx.com']);
            _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>  

1 Ответ

5 голосов
/ 17 июля 2011

Первый выполняется первым, а не в самореализующейся функции.

Он состоит из вызова функции $ и имеет один аргумент: анонимная функция.

$ - очень плохо названная функция. Само название бессмысленно, и оно было принято полдюжиной разных библиотек для полдюжины разных вещей.

В jQuery, если вы передаете функцию в $, она запускает эту функцию, когда срабатывает событие ready (но анализируется конец HTML-документа). Это, вероятно, то, что здесь происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...