构建单个页面/胖客户端应用程序,我想知道使用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/