Ajax实现对静态页面的文章访问统计功能示例

5年以前  |  阅读数:833 次  |  编程语言:PHP 

本文实例讲述了Ajax实现对静态页面的文章访问统计功能。分享给大家供大家参考,具体如下:

众所周知,静态页面不仅速度快,而且对seo也有一定的帮助。前些日子,写了一帖关于《在SAE平台实现WordPress页面纯静态化至KVDB》。我自己使用了一段时间后,发现提速确实很明显。但是随之而来的一个问题就是,由于文章静态化后,页面并不会经过WordPress程序的处理,这样就导致了文章的访问量统计失效。当然,有一个叫做wp-postview的插件是可以解决这个问题的,但是我不是很喜欢插件,因为会拖慢整体的速度。所以这里就给出一个解决方案,就是使用Ajax来实现统计,同样是基于SAE平台的。

定义文章访问统计类

这个其实在我前面的帖子里面已经有提到过了KVDB+TaskQueue实现高效计数器,对这个做简单修改即可。由于不经过php处理,所以就不能使用队列服务来计数。同样定义计数类,并且放到网站根目录下:


    $countkey=$_GET['key'];//获取要操作的计数key
    if($countkey=="") exit;
    if($_GET['action']=="add"){
      $cou=new counter($countkey);
      $cou->inc();//计数key对应的值加1
    }elseif($_GET['action']=="get"){
      $cou=new counter($countkey);
      echo $cou->get();
    }
    class counter {
      private $kvdb;
      private $key;
      public function __construct($key){
        $this->kvdb=new CKvdb();
        $this->key=$key;
      }
      public function inc(){
        $num=$this->kvdb->get($this->key)+1;
        $this->kvdb->set($this->key,$num);
        return $num;
      }
      public function dec(){
        $num=$this->kvdb->get($this->key)-1;
        $this->kvdb->set($this->key,$num);
        return $num;
      }
      public function get(){
        $num=$this->kvdb->get($this->key);
        return intval($num);
      }
    }
    class CKvdb //这个类封装的kvdb操作。
    {
      private $db;
      function __construct(){
        $this->db=new SaeKv();
        $this->db->init();
      }
      public function set($key,$value)
      {
        $this->db->set($key,$value);
      }
      public function get($key)
      {
        return $this->db->get($key);
      }
    }

添加计数代码

在你的文章内容页面,添加如下的Ajax请求代码,该代码是基于jQuery的:


    var keyTemp = $('#postTemp').text();
    $.get('http://localhost/counter.php',{ action:'add',key:keyTemp });
    $.get('http://localhost/counter.php',{ action:'get',key:keyTemp },function(data){
        $('#view').text(data+' Views');
    });

keyTemp变量就是文章的别名,即存入KVDB中的键。我把该健存到一个隐藏的div身上,然后在使用Ajax的时候去获取该div的内容。Ajax中第一个get就是去访问counter.php计数类,并且带上参数,实现访问加1. 第二个get就是取访问值了,把取到的值放到相应的地方中去。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP+ajax技巧与应用小结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例