Javascript 将Piwik用于单页应用程序
构建一个单页/fat客户端应用程序,我想知道使用 我想以一种在架构上合理的方式使用Piwik,并且将来可以在不同的库中重播 使用Piwik进行跟踪似乎有两个基本选项:Javascript 将Piwik用于单页应用程序,javascript,analytics,single-page-application,matomo,fat-client,Javascript,Analytics,Single Page Application,Matomo,Fat Client,构建一个单页/fat客户端应用程序,我想知道使用 我想以一种在架构上合理的方式使用Piwik,并且将来可以在不同的库中重播 使用Piwik进行跟踪似乎有两个基本选项: 用命令填充全局\u paq数组,然后加载脚本(但我不清楚如何记录未来的“页面”视图或更改变量) 获取并使用var myTracker=Piwik.getTracker() \u paq方法: .getTracker()方法: 这些方法在功能上相同吗?对于单页应用程序,一个比另一个更可取吗?使用.getTracker的完整解决方案如
\u paq
数组,然后加载脚本(但我不清楚如何记录未来的“页面”视图或更改变量)\u paq
方法:
.getTracker()
方法:
这些方法在功能上相同吗?对于单页应用程序,一个比另一个更可取吗?使用.getTracker的完整解决方案如下所示:
仍然不确定使用
\u paq
数组是否更好。要使用完全独立于应用程序的跟踪库(如piwik),需要编写一个小类,将函数代理到piwik跟踪器。稍后,如果您从Piwik更改为XYZ,您可以简单地更新此代理类,而不是更新执行某些跟踪的多个文件
异步代码对于您的应用程序来说是必须的(例如,对任何“track*”方法的调用都会发送请求)什么是“异步代码”?对我来说,这两种方法都可以异步实现,所以我感到困惑。在提出问题之前,我实际上仔细研究了这个问题。这个文档页面提到了正在考虑的两种方法。这个使用.getTracker的抽象很有效,在将应用程序与分析库隔离开来方面非常简洁,并且被放入了实时代码中。现在我想把这称为答案,但我想知道创作者是否有任何关于何时使用_paqvs.getTracker()的指导原则:)
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
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