• 技术文章 >CMS教程 >Discuz

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

    咔咔咔咔2020-04-30 15:45:21原创1462

    本文主要内容:

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

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

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

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

    问题还原

    这这页面为主题页面

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

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

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

    photo_2020-04-30_10-08-08.jpg

    那我们在测试一下,新增一个回帖,会发现确实如此哈!但是问题不是那么简单,请继续看下文

    photo_2020-04-30_10-13-48.jpg

    排查步骤

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

    photo_2020-04-30_10-21-10.jpg

    追溯浏览量实现的原理

    在代码的986行,我们就解决了我们的第一个问题,那就是为什么浏览量跟回帖量的数据是一样的,这是因为在这里做了一个判断。如果回复贴的数量大于主题浏览量时,会让浏览量跟回帖量相等

    photo_2020-04-30_11-08-57.jpg

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

    这段代码执行的步骤

    photo_2020-04-30_11-13-33.jpg

    总结

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

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

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

    photo_2020-04-30_11-28-39.jpg

    以上就是Discuz主题浏览量实现原理和不更新的解决方案的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Discuz
    上一篇:【Discuz】实现主题标题和正文同时显示 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 2023年最新Discuz视频教程推荐(二次开发必学)• 再次回归!Discuz论坛重新恢复运营!• Discuz如何去掉php小尾巴• 【Discuz】实现主题标题和正文同时显示
    1/1

    PHP中文网