javascript - 拆分 Javascript 片段

标签 javascript html matomo

开源网页分析软件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 在浏览器找到它时执行,因此根据您调用 piwikTracker.trackPageView(); 的位置,您将获得不同的访问次数。您称之为后者,将计算较少的访问/操作次数。

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

关于javascript - 拆分 Javascript 片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14731993/

相关文章:

javascript - 在 IE 中,Javascript 数组项未定义

html - 最小高度为 100% 且内容垂直居中的 CSS 扩展部分

javascript - 如何在knockoutjs中绑定(bind)输入类型= 'email'

php - 使用nginx + varnish + memcached 安装Piwik = 无法登录?

symfony - 使用 symfony2 安装 piwik

python - Matomo 以前的 Piwik API.getBulkRequest 返回空列表

javascript - 谷歌饼图在下拉列表中呈现在 div 区域之外

javascript - 如何使用 MySQL 和 PHP 创建通配符搜索功能

javascript - 如何使用 JS 变量作为参数执行 sql 查询

html - Angular 2 : How do you pass a selected item from a HTML datalist element back to the component?