访问量统计工具 Hit Kounter v0.2

本文最初发布于个人我的博客:咀嚼之味html

Hit Kounter 是一个简单的访问量统计工具。据我从数据库里的数据目测,如今已经拥有了 9 位用户!不过我要对这九位用户说声抱歉啦。git

Hit Kounter 本来部署于 SAE 上,而近期 SAE 针对使用 MySQL 的应用开始收费。本项目只是一个本人使用业余时间开发的小工具;它自己包含的功能也很精简,并不适合使用付费服务。因此我已经将 Hit Kounter 服务迁移至 LeanCloud 上。本来部署在 SAE 上的服务预计在 五一假期 后下线,对已经使用 Hit Kounter 的一些用户,我再次表达个人歉意!github

因为这次改版改动比较大,我是 fork 了一份代码出来进行修改的;改版后的 Hit Kounter 在 Github 上仓库地址是 zry656565/Hit-Kounter-LC,区别于原来的 Hit Kounter PHP 版:zry656565/Hit-Kounter数据库

使用方式上,目前 v0.2 版本相比于 v0.1 并无什么改变,接下来会从如下几个方面介绍一下:后端

  • 如何为你的博客添加访问统计api

  • Hit Kounter 的 JS 接口浏览器

  • 如何从 v0.1.1 版本迁移到 v0.2.0缓存

  • 小结:Hit Kounter 的将来服务器

若是你是 Hit Kounter v0.1 的用户,能够直接阅读 如何从 v0.1.1 版本迁移到 v0.2.0dom

如何为你的博客添加访问量统计

1. 引入脚本

<script src="https://cdn1.lncld.net/static/js/av-mini-0.6.10.js"></script>
<script src="http://jerry-cdn.b0.upaiyun.com/hit-kounter/hit-kounter-lc-0.2.0.js"></script>

首先,在你的页面中引入这两个脚本,第一个脚本是 LeanCloud 的库脚本,引入了它咱们才能使用 LeanCloud 的服务;因为你可能在每一个页面都须要显示访问量,把它加入根模板也许是个不错的选择。

2. 显示当前页面的访问量

<span data-hk-page="current"> - </span>

你能够在页面的任何地方插入这句 HTML 片断,你以前引入的脚本会自动检查当前页面上带有 data-hk-* 属性的元素,并针对你给出的属性值向服务器请求数据,最后把获得的结果替换到上面的标签内。能够参考 我博客中的例子

3. 显示指定页面的访问量

若是你但愿在文章列表页中显示各个页面的访问量分别是多少,那么你就要使用一个 url 来填充 data-hk-page 的属性值,就像这样:

<span data-hk-page="http://jerryzou.com/posts/design-for-all-mobile-resolution/"> - </span>

那么 Hit Kounter 检测到这个标签之后,就会向服务器请求该地址的具体访问量,并将默认值 - 替换为实际值。能够参考 我博客中的例子

Hit Kounter 的 JS 接口

Hit Kounter 会在全局注入 Icarus 对象,它是与服务器交互的数据接口。经过它,咱们就能够直接向服务器发送请求。先看看下面这个例子:

Icarus.request({
  api: 'hk.page.get',
  v: '1.0',
  data: {
    pages: [
      { url: 'http://test.com/1' },
      { url: 'http://test.com/2' },
      { url: 'http://test.com/3' }
    ]
  },
  success: function(results) {
    for (var i = 0; i < results.length; i++) {
      console.log(results[i].domain, results[i].url, results[i].count);
    }
  },
  failure: function(code, err) {
    console.log(code, err);
  }
});

上面这个例子中,咱们主要是获取了三个页面的具体访问量;目前 Icarus 支持的接口有四个(具体能够参考 Hit-Kounter-LC Wiki):

  • hk.page.increment

  • hk.page.get

  • hk.page.getTop

  • hk.page.getByDomain

至于如何使用就由大家自由发挥啦。

如何从 v0.1.1 版本迁移到 v0.2.0

我已经把迁移的成本降到最低,只要替换引入的文件便可:

<!-- 老版本须要引入的文件 -->
<script src="http://jerry-cdn.b0.upaiyun.com/hit-kounter/hit-kounter-0.1.1.js"></script>

<!-- 新版本须要引入的文件 -->
<script src="https://cdn1.lncld.net/static/js/av-mini-0.6.10.js"></script>
<script src="http://jerry-cdn.b0.upaiyun.com/hit-kounter/hit-kounter-lc-0.2.0.js"></script>

由于 v0.2 版本基于 LeanCloud 的服务,因此须要额外引入 LeanCloud 的一个库文件。另外须要注意的是,第二个文件除了版本号作了更新,还多了 -lc 几个字符哦。

本次更新在将后端服务从 SAE 替换为 LeanCloud 的同时并无作太多的功能改进。最主要的一点功能改进是引入缓存机制,在数据超过默认的五分钟以前,Icarus 不会向服务器发送新的 get 请求。(increment 请求固然仍是照发不误的啦)

如下内容请使用了 Icarus 接口的用户注意

Icarus 接口所接受的多余的参数如今须要放在 data 对象中,注意对你以前的代码作必定修改。直接看例子可能比较直观:

/*================
 * 老版本调用方式
 *================*/
Icarus.request({
  api: 'hk.page.get',
  v: '1.0',
  pages: [                          // <---
    { url: 'http://test.com/1' }    // <---
  ],                                // <---
  success: function(results) {},
  failure: function(code, err) {}
});

/*================
 * 新版本调用方式
 *================*/
Icarus.request({
  api: 'hk.page.get',
  v: '1.0',
  data: {                           // <---
    pages: [                        // <---
      { url: 'http://test.com/1' }  // <---
    ]                               // <---
  },                                // <---
  success: function(results) {},
  failure: function(code, err) {}
});

小结:Hit Kounter 的将来

固然,Hit Kounter 将来会加入愈来愈多的功能,包括但不限于:

  • 添加一个可以得到全站的访问总量的 API

  • 经过添加 <div data-hk-top-pages="5"> 这样一个元素,便可以将全站访问量最高的五个页面罗列在 div 框内。

  • 为用户提供一个很方便的方式来导入初始的访问量数据

  • 完善各类可能的错误信息(包括服务端和浏览器端的错误)

TODO List 能够在 这个 issue 中看到,并且由于 zry656565/Hit-Kounter-LC 是开源项目,也很期待你们可以多吐槽,若是能给 Hit-Kounter-LC 贡献代码那就再好不过啦~。

相关文章
相关标签/搜索