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 相关文章推荐
php addslashes及其他清除空格的方法是不安全的
Jan 25 PHP
Zend的AutoLoad机制介绍
Sep 27 PHP
php类声明和php类使用方法示例分享
Mar 29 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
Jan 07 PHP
PHP Yaf框架的简单安装使用教程(推荐)
Jun 08 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 PHP
vmware linux系统安装最新的php7图解
Apr 14 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 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
十天学会php之第四天
2006/10/09 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
IE与firefox之jquery用法区别
2008/10/03 Javascript
js中的string.format函数代码
2020/08/11 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
2013/10/17 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
深入理解node.js http模块
2018/01/24 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
nodejs使用node-xlsx生成excel的方法示例
2019/08/22 NodeJs
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
详解python数据结构和算法
2019/04/18 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
药品业务员岗位职责
2014/04/17 职场文书
设计顾问服务计划书
2014/05/04 职场文书
英语专业毕业生求职信
2014/05/24 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
驻村工作简报
2015/07/20 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python