访问量统计东西 Hit Kounter v0.2

本文最初宣布于我的个人博客:品味之味

Hit Kounter 是一个简朴的接见量统计东西。据我从数据库里的数据目测,如今已具有了 9 位用户!不过我要对这九位用户说声抱歉啦。

Hit Kounter 底本布置于 SAE 上,而近期 SAE 针对运用 MySQL 的运用最先收费。本项目只是一个本人运用业余时间开辟的小东西;它本身包含的功用也很精简,并不合适运用付费效劳。所以我已将 Hit Kounter 效劳迁徙至 LeanCloud 上。底本布置在 SAE 上的效劳估计在 五一假期 后下线,对已运用 Hit Kounter 的一些用户,我再次表达我的歉意!

由于此次改版修正比较大,我是 fork 了一份代码出来举行修正的;改版后的 Hit Kounter 在 Github 上堆栈地点是 zry656565/Hit-Kounter-LC,区分于本来的 Hit Kounter PHP 版:zry656565/Hit-Kounter

运用体式格局上,现在 v0.2 版本比拟于 v0.1 并没有什么转变,接下来会从以下几个方面引见一下:

  • 如作甚你的博客增加接见统计

  • Hit Kounter 的 JS 接口

  • 怎样从 v0.1.1 版本迁徙到 v0.2.0

  • 小结:Hit Kounter 的将来

假如你是 Hit Kounter v0.1 的用户,可以直接浏览 怎样从 v0.1.1 版本迁徙到 v0.2.0

如作甚你的博客增加接见量统计

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 孝敬代码那就再好不过啦~。

    原文作者:JerryZou
    原文地址: https://segmentfault.com/a/1190000004998848
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞