【Discuz】主题浏览量实现原理和不更新的解决方案

简介: 【Discuz】主题浏览量实现原理和不更新的解决方案

本文主要内容:

解决Discuz主题浏览量不发生变化或者跟这回复帖子的数量一起变化

如果你是新手discuz开发人员可以从头查看文章

如果你是一个站长直接看文章底部总结即可

更多文章尽在专栏:Discuz专栏

问题还原

这这页面为主题页面

上面红框为主题的浏览量使用的是$_G[forum_thread][views]

下面全部回复为回帖数量使用的是$_G[forum_thread][replies]

然而我们刷新页面时浏览量并不会增加,但是我们在主题回复一个帖子时浏览量就会增加

屏幕快照 2022-05-19 下午5.22.59.png

排查步骤

  • 第一步:我们需要确认浏览量跟回帖量是不是这俩个字段
  • 第二步:我们需要追溯浏览量增加的原理

那么下来咱们来排查第一个问题:打开数据库字典查看pre_forum_thread 表,那么我们就确定了我们在源码里使用的变量是正确的

屏幕快照 2022-05-19 下午5.23.24.png

然后继续寻找更新主题浏览量的代码:在1054行里有viewthread_updateviews这个方法,根据字面意思我们都能理解这个方法是干嘛的,主题更新浏览量的。


这段代码执行的步骤


先回判断后台是否开启了优化主题浏览量优化功能


然后判断全局变量里边addviews这个的值


如果这个值小于100就会把数据更新到pre_forum_threadaddviews这个表


如果当addviews这个值大于100时就会清空此专题的浏览量,然后会把这个数据存进pre_forum_thread 主题表的views字段


这就是基本的实现流程


在上述中,我们发现了浏览量是不会直接存入主题表的,这样做的好处就是防止频繁更新主题表,防止锁表

image.png

总结


到了这里我想该明白的也都明白了,关于主题浏览量不增加的原因其实都是后台控制的,因为在上段代码中的第一行就可以看到这个preventrefresh值是控制是否开启优化主题浏览量的


只要根据咔咔这样配置就可以了。


但是作为开发者来说对一个功能点的实现必须追溯源码,只有这样才可以不断提升自己。

image.png


相关文章
|
4月前
|
存储 缓存 NoSQL
网页设计,若依项目修改(It must be done)04在线用户展示---仅仅从Redis取一下数据做展示,查看若依存储的资料,用RDM
网页设计,若依项目修改(It must be done)04在线用户展示---仅仅从Redis取一下数据做展示,查看若依存储的资料,用RDM
|
6月前
|
移动开发 小程序 安全
【社区每周】AIT现支持免登陆使用;小程序内嵌外跳H5页面支持支付宝端内官方应用(8月第一期)
【社区每周】AIT现支持免登陆使用;小程序内嵌外跳H5页面支持支付宝端内官方应用(8月第一期)
120 11
|
6月前
|
弹性计算 NoSQL 大数据
动态精选|阿里云1月产品与服务更新盘点
动态精选|阿里云1月产品与服务更新盘点
48 0
|
搜索推荐 应用服务中间件 nginx
typecho joe主题优化日志
博主使用了typecho进行博客网站的建立,也进行了一定程度上的修改优化。可从本文看到一系列美化方法。配置为 typecho1.2 php7.4
128 0
typecho joe主题优化日志
|
SQL XML 前端开发
怎么做社区网站的首页帖子展示?
要进行首页帖子展示,就必须学会分页,而在创建分页之前,我们得先认识到,为什么要进行分页?一个大型网站的数据库将容纳大量的数据,而我们进行展示某部分数据时,为了保证浏览速度,不可能一次性地将所有数据进行传输,更何况,不是全部传输过去的数据第一时间就能有效利用,所以,只要每次将需要的数据传输过去就好,即使是后续需要的数据,那也是后面时间点需要完成的工作,为了做到这一点,必须对一个数据整体进行划分,合理地传输并展示给用户,其中,划分出来的每一部分可被称为一页数据,完成划分工作的就是分页操作。而分页操作在 spingboot 及 mybatis 的环境下,可被分为以下几种分页情况:
140 0
怎么做社区网站的首页帖子展示?
|
存储 缓存 前端开发
【Java项目】bitmap实现B站点赞超过500取消最早的点赞记录的实现思路
【Java项目】bitmap实现B站点赞超过500取消最早的点赞记录的实现思路
182 0
|
缓存 Java 数据库
SpringDataRedis(二)(案例)(网站首页-缓存广告数据)
SpringDataRedis(二)(案例)(网站首页-缓存广告数据)
88 0
|
缓存 数据库 iOS开发
开源网站流量统计系统Piwik源码分析——后台处理(二)
  在第一篇文章中,重点介绍了脚本需要搜集的数据,而本篇主要介绍的是服务器端如何处理客户端发送过来的请求和参数。
开源网站流量统计系统Piwik源码分析——后台处理(二)
|
数据库
【自然框架】之鼠标点功能现(一):单表的增删改查(即上次5月23日活动的一个主题)【Demo、源码下载】
简单的需求,点点鼠标就可以了,那么复杂的需求呢?还是要写代码,哈哈。 不要被我误导了哦,关于什么时候写代码的问题,请看这里:http://www.cnblogs.com/jyk/archive/2009/06/21/1507594.html    单表的增删改查         我有一个梦想,那就是不用敲代码,只需要点点鼠标,就可以实现客户的需求。
1125 0