Discuz主题浏览量不更新

飞鸟
飞鸟
管理员
2212
文章
0
粉丝
Discuz模板插件评论529阅读模式

这这页面为主题页面

上面红框为主题的浏览量使用的是$_G[forum_thread]532 次浏览文章源自飞鸟学习网-https://www.pk88.net/2023-0321-3.html

下面全部回复为回帖数量使用的是$_G[forum_thread][replies]文章源自飞鸟学习网-https://www.pk88.net/2023-0321-3.html

然而我们刷新页面时浏览量并不会增加,但是我们在主题回复一个帖子时浏览量就会增加文章源自飞鸟学习网-https://www.pk88.net/2023-0321-3.html

文章源自飞鸟学习网-https://www.pk88.net/2023-0321-3.html

那我们在测试一下,新增一个回帖,会发现确实如此哈!但是问题不是那么简单,请继续看下文文章源自飞鸟学习网-https://www.pk88.net/2023-0321-3.html

文章源自飞鸟学习网-https://www.pk88.net/2023-0321-3.html

排查步骤

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

那么下来咱们来排查第一个问题:打开数据库字典查看pre_forum_thread 表,那么我们就确定了我们在源码里使用的变量是正确的文章源自飞鸟学习网-https://www.pk88.net/2023-0321-3.html

文章源自飞鸟学习网-https://www.pk88.net/2023-0321-3.html

追溯浏览量实现的原理

在代码的986行,我们就解决了我们的第一个问题,那就是为什么浏览量跟回帖量的数据是一样的,这是因为在这里做了一个判断。如果回复贴的数量大于主题浏览量时,会让浏览量跟回帖量相等文章源自飞鸟学习网-https://www.pk88.net/2023-0321-3.html

文章源自飞鸟学习网-https://www.pk88.net/2023-0321-3.html

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

这段代码执行的步骤

  • 先回判断后台是否开启了优化主题浏览量优化功能
  • 然后判断全局变量里边addviews这个的值
  • 如果这个值小于100就会把数据更新到pre_forum_threadaddviews这个表
  • 如果当addviews这个值大于100时就会清空此专题的浏览量,然后会把这个数据存进pre_forum_thread 主题表的views字段
  • 这就是基本的实现流程
  • 在上述中,我们发现了浏览量是不会直接存入主题表的,这样做的好处就是防止频繁更新主题表,防止锁表

总结

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

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

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

全站资源源于网络整合,仅供学习研究,不可商用,不提供技术指导,如有侵权请告知删除,可以投稿,广告合作联系V: pk88net

继续阅读
weinxin
我的微信
微信号已复制
我的微信
微信扫一扫
 
  • 本文由 飞鸟 发表于21 3 月, 2023 11:58:46
  • 转载请务必保留本文链接:https://www.pk88.net/2023-0321-3.html
    免责声明
    非常感谢您的访问。在您使用本网站之前,请您仔细阅读本声明的所有条款。
    1、本网站属于个人网站,本分开放互享的原则,本网站的内容均为站长提供、网友推荐、互联网整理而来,仅用于广大网友学习研究使用,如有侵犯您的版权,请及时联系我们,本站将及时纠正。
    2、本站内容不保证其完整性、正确性,但是我们会尽最大努力去确保提供信息的完整性及正确性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
    3、对由于使用本站所产生的任何直接、间接或偶然性的损失或破坏,无论该损失或破坏是否源于疏忽、违约、诽谤、侵权甚至电脑病毒等原因造成的,本网站概不负责,亦不负任何法律责任。
    4、本网站所有内容(网络,素材、图片),其版权均归原作者所有,在转载有关文章时务必尊重该文章的著作权,保留其来源,并自负版权等法律责任。
    5、本声明未涉及的问题参见国家有关法律法规,当本声明与国家法律法规冲突时,以国家法律法规为准。
    6、本站文章内容,如果来源于互联网,我们会标明其来源,如果属于本站原创整理互联网资料,请您转载或者使用该文章时尊重本站及其互联网作者的著作权,注明其来源。
    7、互联网的本质是自由与分享,我们真诚的希望,本站的每一份正能量能带给正在访问本网站的您提供有效的帮助,并且能在互联网自由传播。希望大家多多支持本站。
  • Discuz主题浏览量不更新

发表评论