xiuno点击访问量统计改为异步执行教程

已认证 已通过实名认证 xiuno
管理员
官方成员
9月前 494

在xiuno点击服务里,官方有这么一句话:

// 如果是大站,可以用单独的点击服务,减少 db 压力
		// if request is huge, separate it from mysql server
		thread_inc_views($tid);


单独的点击服务自然是比较复杂,实现上难度也比较大,毕竟单独的点击表将需要更多的代码修改。实际上对于一些中等站点,当点击服务对网站页面打开的压力增大的时候,采用异步执行也不失为一个好的办法,异步执行可有效降低帖子页面的打开时间,提升用户体验!那么如何处理呢?


首先,我们需要修改文件:route/thread.php,搜索代码thread_inc_views($tid);

改为  //thread_inc_views($tid);  即注释掉这行代码。


其次,修改文件:view/htm/thread.htm  ,搜索// 输入框自动伸缩  ,在这行代码下增加一个JS执行,如下:


$.xpost('call_viewscount.htm', "ac=call_view&tid="+<?php echo $thread['tid']; ?>, function(code, message) {

});


在call_viewscount.php里,输入一下代码并将该文件放到 route/ 文件夹内:

<?php
!defined('DEBUG') and exit('Access Denied.');
$action = addslashes(param('ac'));
$tid=addslashes(param('tid'))
if ($action == 'call_view') {
	thread_inc_views($tid, $n = 1);
}


在index.inc.php 文件里,搜索 // hook index_route_case_end.php,在下面一行添加case 'call_viewscount': include _include(APP_PATH.'route/call_viewscount.php'); break;


如果你稍微懂点xiuno开发,这里应该已经了解的差不多了,没错,就是利用访问帖子页面时,JS自动访问 call_viewscount.htm文件来对当前页面进行一次点击统计服务。如此一来,帖子的访问就不会因为统计服务执行缓慢而延迟打开,也可以有效防止机器访问造成的浏览量快速刷新问题(除非机器访问也能执行JS)!


最后于 9月前 被xiuno编辑 ,原因:

未登录提示:


关闭
他们喜欢这个资源
  • 繁华如三千东流水
  • benladen
  • tenyet
  • xzw11111
  • 橘子
  • 88
  • klykly
  • Airhelym
  • 大块冰糖
  • rz0612
  • 奋进
  • 爱上书
  • aa123
最新回复 (0)
    • Xiuno顶尖网
      2
        登陆 注册
  • aa123
    2
     点击可以快捷回复 感谢 支持 不错 无奈 一般 生气 回帖 路过 顶帖
    表情
在线客服

特别说明

QQ客服仅提供有偿服务,如无付费意愿,请勿扰!一般问题请站内发帖咨询!
服务项目:
1,xiuno插件模板定制开发
2,xiuno网站BUG修复
3,xiuno个性化定制
4,xiuno仿站等

客服工作时间:8:00~22:00
在线客服