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


Posted in PHP onOctober 10, 2016

本文实例讲述了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 相关文章推荐
一个简单的自动发送邮件系统(二)
Oct 09 PHP
将文件夹压缩成zip文件的php代码
Dec 14 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
Jun 17 PHP
详解php中serialize()和unserialize()函数
Jul 08 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 PHP
Laravel数据库读写分离配置的方法
Oct 13 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
Aug 17 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 #PHP
PHP对象链式操作实现原理分析
Oct 09 #PHP
SAE实时日志接口SDK用法示例
Oct 09 #PHP
对PHP依赖注入的理解实例分析
Oct 09 #PHP
mac下多个php版本快速切换的方法
Oct 09 #PHP
Laravel中间件实现原理详解
Oct 09 #PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
Oct 09 #PHP
You might like
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
2015/02/02 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
JavaScript Chart 插件整理
2010/06/18 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
微信小程序icon组件使用详解
2018/01/31 Javascript
不得不知的ES6小技巧
2018/07/28 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
python基础教程之序列详解
2014/08/29 Python
python base64 decode incorrect padding错误解决方法
2015/01/08 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
设置python3为默认python的方法
2018/10/31 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
新郎父亲婚宴答谢词
2014/01/11 职场文书
司法建议书范文
2014/05/13 职场文书
国情备忘录观后感
2015/06/04 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书