构建单页/胖客户端应用程序,我想知道使用 http://piwik.org/ 包含和跟踪的最佳实践是什么
我希望以一种架构合理的方式使用 Piwik,并且将来可以用不同的库替换。
使用 Piwik 进行跟踪似乎有两个基本选项:
- 用命令填充全局
_paq
数组,然后加载脚本(我不清楚如何记录 future 的“页面” View 或更改变量) - 获取并使用
var myTracker = Piwik.getTracker()
_paq
方法:
myApp.loadAnalytics = function() { /* dynamically insert piwik.php script */ }
myApp.track = function(pageName) {
window._paq = window._paq || [];
_paq.push(['setDocumentTitle', pageName]);
_paq.push(["trackPageView"]);
}
myApp.loadAnalytics()
// Then, anywhere in the application, and as many times as I want (I hope :)
myApp.track('reports/eastWing') // Track a "page" change, lightbox event, or anything else
.getTracker()
方法:
myApp.loadAnalytics = function() { /* dynamically insert piwik.php script */ }
myApp.track = function(pageName) {
myApp.tracker = myApp.tracker || Piwik.getTracker('https://mysite.com', 1);
myApp.tracker.trackPageView(pageName);
}
myApp.loadAnalytics()
// Then, anywhere in the application, and as many times as I want (I hope :)
myApp.track('reports/eastWing') // Track a "page" change, lightbox event, or anything else
这些方法在功能上是否相同?对于单页应用程序来说,一个比另一个更受欢迎吗?
最佳答案
要使用跟踪库(例如 piwik)完全独立于您的应用程序,您需要编写一个小类来将函数代理到 Piwik 跟踪器。稍后,如果您从 Piwik 更改为 XYZ,您可以简单地更新此代理类,而不是更新多个执行某些跟踪的文件。
异步代码对于您的应用来说是必须的(例如,调用任何“track*”方法都会发送请求)
关于javascript - 将 Piwik 用于单页应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15907719/