Разделение фрагмента Javascript

Программное обеспечение для веб-анализа с открытым исходным кодом Piwik рекомендует размещать следующий код в конце страниц, которые вы хотите отслеживать, непосредственно перед закрывающим тегом </body>:

<html>
<head>
    [...]
</head>
<body>
    [...]
    <!-- Piwik -->
    <script type="text/javascript">
    var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.example.com/" : "http://piwik.example.com/");
    document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
    </script><script type="text/javascript">
    try {
    var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 4);
    piwikTracker.trackPageView();
    piwikTracker.enableLinkTracking();
    } catch( err ) {}
    </script><noscript><p><img src="http://piwik.example.com/piwik.php?idsite=4" style="border:0" alt="" /></p></noscript>
    <!-- End Piwik Tracking Code -->
</body>
</html>

При следующих предположениях:

  1. https никогда не используется
  2. нас не волнует, что страница загружается медленнее, потому что скрипт загружается до DOM

можно ли преобразовать приведенное выше в следующее:

HTML-файл:

<html>
<head>
    [...]
    <script src="http://piwik.example.com/piwik.js" type="text/javascript"></script>
</head>
<body>
    [...]
    <noscript><p><img src="http://piwik.example.com/piwik.php?idsite=4" style="border:0" alt="" /></p></noscript>
</body>
</html>

Пользовательский файл Javascript с jQuery:

$(document).ready(function() {
    try {
        var piwikTracker = Piwik.getTracker("http://piwik.example.com/piwik.php", 4);
        piwikTracker.trackPageView();
        piwikTracker.enableLinkTracking();
    }
    catch(err) {
    }
}

Есть ли отличия?


person boothby81    schedule 06.02.2013    source источник


Ответы (1)


Вы откладываете отслеживание до полной загрузки страницы. Встроенный Javascript выполняется, когда браузер находит его, поэтому у вас будет разное количество посещений в зависимости от того, где вы вызываете piwikTracker.trackPageView();. Чем последнее вы назовете, тем меньшее количество посещений/действий будет засчитано.

Теперь, что вы считаете посещением/действием? Если пользователь нажимает на ссылку на вашей странице до того, как страница полностью загрузится, вы считаете это посещением?

person Francisco R    schedule 07.02.2013