【问题标题】:Splitting up a Javascript snippet拆分 Javascript 片段
【发布时间】:2013-01-21 19:46:12
【问题描述】:

开源网页分析软件 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>

使用 jQuery 自定义 Javascript 文件:

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

有什么不同吗?

【问题讨论】:

    标签: javascript html matomo


    【解决方案1】:

    您正在推迟跟踪,直到页面完全加载。内联 Javascript 会在浏览器找到它时执行,因此您将获得不同的访问次数,具体取决于您调用 piwikTracker.trackPageView(); 的位置。您称之为后者,将计算较少的访问/操作次数。

    现在,您认为访问/操作是什么?如果用户在页面完全加载之前点击了您页面上的链接,您认为这是一次访问吗?

    【讨论】:

      猜你喜欢
      • 2012-03-10
      • 2015-09-02
      • 2012-05-15
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-31
      • 1970-01-01
      相关资源
      最近更新 更多