首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

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

发布于 2025-05-03 18:27:19
0
145

在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(APPPATH.'route/call_viewscount.php'); break;

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

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流