亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Discuz主題瀏覽量實現原理和不更新的方法

發布時間:2020-08-24 15:37:09 來源:億速云 閱讀:269 作者:小新 欄目:建站服務器

小編給大家分享一下Discuz主題瀏覽量實現原理和不更新的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

本文主要內容:

解決Discuz主題瀏覽量不發生變化或者跟這回復帖子的數量一起變化

如果你是新手discuz開發人員可以從頭查看文章

如果你是一個站長直接看文章底部總結即可

問題還原

這這頁面為主題頁面

上面紅框為主題的瀏覽量使用的是$_G[forum_thread][views]

下面全部回復為回帖數量使用的是$_G[forum_thread][replies]

然而我們刷新頁面時瀏覽量并不會增加,但是我們在主題回復一個帖子時瀏覽量就會增加

Discuz主題瀏覽量實現原理和不更新的方法

那我們在測試一下,新增一個回帖,會發現確實如此哈!但是問題不是那么簡單,請繼續看下文

Discuz主題瀏覽量實現原理和不更新的方法

排查步驟

  • 第一步:我們需要確認瀏覽量跟回帖量是不是這倆個字段

  • 第二步:我們需要追溯瀏覽量增加的原理

那么下來咱們來排查第一個問題:打開數據庫字典查看pre_forum_thread 表,那么我們就確定了我們在源碼里使用的變量是正確的

Discuz主題瀏覽量實現原理和不更新的方法

追溯瀏覽量實現的原理

在代碼的986行,我們就解決了我們的第一個問題,那就是為什么瀏覽量跟回帖量的數據是一樣的,這是因為在這里做了一個判斷。如果回復貼的數量大于主題瀏覽量時,會讓瀏覽量跟回帖量相等

Discuz主題瀏覽量實現原理和不更新的方法

然后繼續尋找更新主題瀏覽量的代碼:在1054行里有viewthread_updateviews這個方法,根據字面意思我們都能理解這個方法是干嘛的,主題更新瀏覽量的。

這段代碼執行的步驟

  • 先回判斷后臺是否開啟了優化主題瀏覽量優化功能

  • 然后判斷全局變量里邊addviews這個的值

  • 如果這個值小于100就會把數據更新到pre_forum_threadaddviews這個表

  • 如果當addviews這個值大于100時就會清空此專題的瀏覽量,然后會把這個數據存進pre_forum_thread 主題表的views字段

  • 這就是基本的實現流程

  • 在上述中,我們發現了瀏覽量是不會直接存入主題表的,這樣做的好處就是防止頻繁更新主題表,防止鎖表

Discuz主題瀏覽量實現原理和不更新的方法

總結

到了這里我想該明白的也都明白了,關于主題瀏覽量不增加的原因其實都是后臺控制的,因為在上段代碼中的第一行就可以看到這個preventrefresh值是控制是否開啟優化主題瀏覽量的

只要根據咔咔這樣配置就可以了。

但是作為開發者來說對一個功能點的實現必須追溯源碼,只有這樣才可以不斷提升自己。

Discuz主題瀏覽量實現原理和不更新的方法

以上是Discuz主題瀏覽量實現原理和不更新的方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林周县| 清流县| 陕西省| 龙门县| 青神县| 大连市| 酒泉市| 清新县| 泰州市| 庆安县| 涞水县| 德庆县| 翼城县| 临夏市| 闻喜县| 乌拉特前旗| 平谷区| 卢湾区| 龙山县| 昌吉市| 宁夏| 尉氏县| 永清县| 宝坻区| 深泽县| 瓦房店市| 辽宁省| 西盟| 陕西省| 宣城市| 东至县| 汉阴县| 城口县| 莱西市| 呼玛县| 商水县| 张家界市| 舞钢市| 辽阳市| 定日县| 白城市|