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

    10-11 02:38