Piwik是一个PHP和MySQL的开放源代码的Web统计软件. 它给你一些关于你的网站的实用统计报告,比如网页浏览人数, 访问最多的页面, 搜索引擎关键词等等。

单页应用是指在浏览器中运行的应用,它们在使用期间不会重新加载页面,单页应用可以做到一举两得:桌面应用的即时性和网站的可移植性和可访问性。

下面我们就使用piwik来统计单页面:

首先配置所需环境及工具

1.在archlinux中安装piwik:

yaourt -S piwik

2.安装apache和数据库mariadb以及php:

yaourt -S apache
yaourt -S mariadb
yaourt -S php php-apache

通过yaourt -Ss 名称 查看安装与否:


安装完成之后,
1.根据 Apache HTTP Server中的配置步骤进行配置相关信息,打开 配置信息详细步骤
2.创建Apache配置文件:/etc/httpd/conf/extra/piwik.conf
内容为:

Alias /phpmyadmin "/usr/share/webapps/piwik"
<Directory "/usr/share/webapps/piwik">DirectoryIndex index.phpAllowOverride AllOptions FollowSymlinksRequire all granted
</Directory>

然后在/etc/httpd/conf/httpd.conf中加入以下代码:

Include conf/extra/piwik.conf

修改完之后,启动httpd服务和数据库

sudo systemctl restart httpd
sudo systemctl restart mariadb.service

网址栏输入网址:本地IP/piwik / 就可以使用啦

然后可以通过如下路径中获取你的piwik跟踪代码:
Settings -> Websites -> View Tracking Code
为了跟踪你的网站数据,需要将如下的Piwik跟踪代码添加至每个网页上,以下是以单页面为例:

<script type="text/javascript">(function(history){var pushState = history.pushState;history.pushState = function(state) {if (typeof history.onpushstate == "function") {history.onpushstate({state: state});}// ... whatever else you want to do// maybe call onhashchange e.handlerreturn pushState.apply(history, arguments);};
})(window.history);var _paq = _paq || []/* tracker methods like "setCustomDimension" should be called before "trackPageView" */_paq.push(['trackPageView']);_paq.push(['enableLinkTracking']);// _paq.push(['trackEvent', 'el-menu-item', 'Click'])(function() {//安装Piwik软件的网站服务器具备其URL地址,如下两行指定了其URL地址:var u="//192.168.12.117/piwik/";_paq.push(['setTrackerUrl', u+'piwik.php']);//在你的Piwik账户中创建的每一个网站都有一个唯一的siteID,如下代码指定了其siteID =6  _paq.push(['setSiteId', '6']);var g = document.createElement('script')var s = document.getElementsByTagName('script')[0]g.type = 'text/javascript'g.async = trueg.defer = trueg.src = u + 'piwik.js's.parentNode.insertBefore(g, s)window.onpopstate = history.onpushstate = function(event) {console.log("popholdurl-------")//追踪一个新页面_paq.push(['setCustomUrl', '/' + window.location.hash.substr(1)])_paq.push(['setDocumentTitle', document.domain + "/" + document.title])//以下一行代码将一次浏览传输到Piwik:_paq.push(['trackPageView'])}})()</script>

备注:
代码中用到window.history 即对象包含浏览器的历史。

HTML5 新增的历史记录 API 可以实现无刷新更改地址栏链接,配合 AJAX 可以做到无刷新跳转。

简单来说:假设当前页面为renfei.org/,那么执行下面的 JavaScript 语句:

window.history.pushState(null, null, "/profile/");

之后,地址栏的地址就会变成renfei.org/profile/,但同时浏览器不会刷新页面,甚至不会检测目标页面是否存在。

piwik统计单页面相关推荐

  1. html加上百度统计,vue单页面应用加入百度统计

    版权声明:本文为CSDN博主「钟文辉」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/qq_39753974/ ...

  2. VUE单页面应用百度统计失效问题解决方法

    VUE单页面应用在进行百度统计时,只能统计到主页的访问次数,而不能统计到子页面. 这是因为,如果按照以上百度统计提供的方法添加统计代码,在VUE单页面应用,如果不刷新,只会加载一次index.html ...

  3. 单页面应用(SPA)前端路由hash 模式 VS history 模式

    文章目录 单页面应用(SPA) 前端路由的由来 前端路由 hash 模式 history 模式 hash.history优缺点 单页面应用(SPA) 简单的说 SPA 就是一个WEB项目只有一个 HT ...

  4. vue单页面程序对谷歌GA事件的应用

    公司运营最近在对网页做用户转化率调查这块,找到了谷歌GA事件.按照之前GA官网给出的文档,把代码加入到了index.html里面,一周后发现统计出来的数据跟后台数据库对比对不上. 经过一番研究后,发现 ...

  5. 单页面网站seo优化的基本要点

    一个专业的网站建设者从来都不是与生俱来的,在苦练怎样建成一个好网站的过程中必定走过弯路,吃过苦头,对网站的架构.页面展示以及优化等各方面都需要精雕细琢,今天,我们就从seo的角度谈谈单页面网站建设的好 ...

  6. 当spa单页面应用遇上SEO,蛋痛的经历

    spa单页面应用优点当然毋庸置疑:效果酷炫,我在视觉和产品面前无从反驳:性能高速度快,全JS嘛当然快,我在运维和产品面前无言以对:运算分散,异步加载,又省硬件又省流量,我在开发和产品面前彻底投降:JS ...

  7. 前端的单页面模式和多页面模式

    一.前言 前端部分的搭建,需要考虑使用哪种模式进行页面之间的跳转交互, 而项目内的页面交互,不可避免的需要相互之间的数据共享. 这就引出了本篇博客的目的,一起来谈谈:项目前端部分的构建方式以及数据共享 ...

  8. 单页面与多页面的区别及优缺点

    单页面应用(SPA),通俗一点说就是指只有一个主页面的应用,浏览器一开始要加载所有必须的 html, js, css.所有的页面内容都包含在这个所谓的主页面中.但在写的时候,还是会分开写(页面片段), ...

  9. Bootstrap:关于bootstrap单页面中多Modal的问题

    2019独角兽企业重金招聘Python工程师标准>>> 在单页面中新建用户采用modal而判断添加成功后还采用modal提示成功后右边的滚动条会出来俩条,覆盖整个body的阴影瞬间变 ...

最新文章

  1. 滴滴自动驾驶,现在是一个怎样的“富二代”创业项目?
  2. Linux之TCPIP内核参数优化
  3. struts-execl.xml
  4. NETINT刘伟:ASIC才是未来
  5. linux usb ga驱动详解,Linux设备驱动之内存映射
  6. 京东五星电器送扫地机器人_家电也流行“套餐”,京东五星电器吹响国庆家装“集结号”...
  7. 一种基于伪标签半监督学习的小样本调制识别算法
  8. mysql数据异常增长_mysql表到一定数据量后会异常的增长
  9. 用VC写Assembly代码(5) --函数调用(一)
  10. Oracle11g客户端安装配置
  11. 【iOS】Swift3 报错:Value of type 'AppDelegate' has no member 'managedObjectContext',UIApplication has no
  12. mysql 两个日期加减_mysql加减时间-函数-时间加减
  13. Hive Sql 安装
  14. 英尺英寸和厘米的换算_英寸和厘米的换算
  15. 怎样登陆微信小程序?怎样登陆微信小程序后台?微信小程序成员如何登陆后台管理?微信小程序怎么登录,如何正确登录微信小程序后台?微信小程序如何登录页面?具体操作步骤如下
  16. 阿里云产品之基于OSS快速搭建Web网站
  17. Python爬虫爬取中国电影票房排行榜
  18. Squid代理服务器基础_wuli大世界_新浪博客
  19. docker pull xxx 失败 超时 timeout
  20. python入门教程慕课网_秒懂系列 | 史上最简单的Python Django入门教程

热门文章

  1. 前端下载图片 在浏览器中
  2. 华为手机中的计算机怎么用高级,华为EMUI10的这个功能 保时捷也在用
  3. java解析pdf文档(前面写了docx的解析所以也思考写一份pdf的解析)--PdfReader底层分析
  4. 算法博弈论笔记 - 3 梅尔森的引理
  5. 信创动态| ZStack鼎甲科技完成兼容互认证
  6. FlyAI竞赛服务平台赛题上新——手写英文字体识别(名企内推)
  7. 越吃越瘦的15样东西
  8. 大学社团管理系统-毕业论文
  9. word去掉页眉横线方法
  10. 深入理解7816(1)---- 关于F/D和etu