wordpress CMS主题 微信
Home > PHP开发 > 前台HTML静态页面,可通过Ajax更新并显示用户浏览量

前台HTML静态页面,可通过Ajax更新并显示用户浏览量

高时银博客 PHP开发 点击: 874 次 0 1

为了直观地了解每一篇文章的用户浏览情况,一般情况下,开发者都会在每一篇文章的页面添加用户浏览统计——即点击量。如果是php动态页面,如wordpress程序,前面页面也是动态代码,统计就比较简单,直接用php代码统计即可。而如果前台页面是纯静态代码,如织梦,它们的前台网站页面是后台点击生成后的纯静态的,所以再用php代码就不好使用。那想要统计,怎么办呢?

纯静态页面,可以通过 JS + Ajax + php + JSON 来实现。示例如下:

第一步:前台页面HTML。代码如下:

<div class="click">点击:<span></span></div>

点击量放在<span></span>标签中,默认是空。只有有用户浏览过后,才显示。

第二步:前台页面JS代码。

$(function(){
var url = window.location.href;
var p_id = url.substring(url.lastIndexOf("/")+1,url.lastIndexOf(".html")); //获取文章ID
//统计点击
$.ajax({
url:"count.php",
type:"post",
data:{"p_id":p_id},
success:function(rel){
$(".click span").text(rel)
}
});
});

上面代码中获取文章ID,是通过URL获取,这个根据实际情况而定,主要是获取 .html前和最后一个 / 之间的字符串。当然,不同的网站,情况不同。获取ID后,就通过Ajax将这个ID号传递给 count.php这个php文件.

第三步:后台php处理文件——count.php 。代码如下:

$p_id = !empty($_POST["p_id"]) ? $_POST["p_id"] : ""; //文章ID
if(!isset($_COOKIE["admin_".$p_id])){//如果不存在当前文章的cookie,就生成
setcookie("admin_".$p_id,"admin_".$p_id,time()+3600);
}
//读取 JSON
if(file_exists("count.json")){//如果文件存在
$json = file_get_contents("count.json");
$arr = json_decode($json,true);
if(isset($arr[$p_id])){ //如果数组中存在,就直接修改
//if(!isset($_COOKIE["admin_".$p_id])){ //如果该文章 cookie 不存在 ,文章点击量就+1
$click = $arr[$p_id];
$arr[$p_id] = $click+1; //文章点击量+1
//}
}else{//不存在 ,就添加
$arr[$p_id]=1;
}
file_put_contents("count.json",json_encode($arr));//写入
}else{ //如果文件不存在
$arr[$p_id]=1;
file_put_contents("count.json",json_encode($arr));
}
echo $arr[$p_id];

上面代码中,先是获到ajax传递过来的文章ID,然后以文章ID为下标的形式将点击量赋值给数 $arr ,再将这个数组以 json 的形式写入到 count.json 文件中。

第四步:通过Ajax返回点击量

代码就不重写了,在第二步已写好。ajax返回文章点击量后,添加到HTML代码中<span></span>中。

通过这4步,我们就简单地实现了静态页面也能随时获取更新点击量。这个方法的好处是,不需要把点击量计入mysql数据库,而是直接计入json文件中,这样就节省了服务器资源,网页速度上相对来说就会快一些。


文章作者:高时银博客
本文地址:http://wanlimm.com/77201609275164.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

目前还没有评论。赶快来坐沙发吧。

发表评论