博主最近剛好碰到客戶的網站首頁打開慢,2s左右,這里的速度值得是,F12打開開發者工具選擇Network查看對應的域名加載速度,如下圖Waiting花了1.95s,正常頁面這塊速度一般是1s內,現在的速度肯定是不及格的,那么有沒辦法優化下呢,下面一起來研究下。
網頁速度影響因素
首先說明這里講的網頁速度是排除掉靜態資源加載的,這里的速度是用戶訪問域名然后程序響應回來所花的時間,主要影響因素有以下幾點:
1、服務器配置
配置高的服務器響應速度差別還是很明顯的,但是一般情況下咱們的數據量不是超大,例如幾萬,那么區別不明顯。
2、CMS程序
這個可能是影響這個速度最明顯的地方,pbootcms目前發現的是如果數據量大、內容自定義字段過多、頁面中判斷層級大于2級等都容易造成網頁響應速度下降明顯。
3、數據庫影響
pbootcms默認使用的是sqlite,如果數據超過1w建議換成mysql。如果說一開始確定好了采集方向,那提前使用mysql會節省很多頭發。
pbootcms速度優化方法
1、減少if層級,控制在2層
2、數據量和字段數一般沒法控制,看具體項目,所以得考慮前臺調用代碼去優化
3、頁面純靜態化,目前還沒有此功能暫不考慮
下面針對前臺調用代碼進行分析下:
通過查找手冊公共標簽-其他格式化標簽發現有個lfield參數,經過測試確實效果明顯!
使用案例,這些因為只需要調用title和date所以做了限制查詢這兩個字段即可。
{pbootcms:list?scode=2?num=8?order='date?desc'?lfield=title,date}
<li?class="flex">
????<a?href="[list:link]"?class="tit?elp">[list:title]</a>
????<div?class="date">[list:date?style=Y-m-d]</div>
</li>
{/pbootcms:list}
博主剛提到的那個站通過此方式首頁響應速度從2s左右控制到了1s以內,基本解決了問題。
性能優化原理解析:
通過查看數據庫查詢語句發現pbootcms對于列表數據默認是查詢內容主表ay_content和附表ay_content_ext的全部字段,這就導致了數據多的時候性能明顯下降,特別注意的是附表是內容新增字段存放位置,這里就解釋了為什么字段新增過多導致卡的原因了。
因此核心就是在于默認得限制字段調用,所以博主建議列表內容調用的時候養成默認增加lfield屬性限制字段使用,同時也建議避免content在列表內容中調用,因為content字段數據一般都比較多,可以使用description字段替代。
這里提供個列表內容調用模板:
{pboot:list?scode=20?num=20?order=date?lfield=title,ico,date,description}
<div?class="col-12?col-lg-6?mb-3?wow?fadeInUp"?data-wow-delay="500ms">
????<div?class="media?mb-3">
????????<div?class="media-body">
????????????<h5><a?href="[list:link]"?title="[list:title]">[list:title?lencn=20]</a></h5>
????????????<p><a?href="[list:link]"?class="text-secondary?lh-2">[list:description?len=50]?[list:date?style=Y-m-d]</a></p>
????????</div>
????</div>
</div>
{/pboot:list}
//?lfield=title,ico,date,description?代表限制調用字段title,ico,date,description
//?[list:description?len=50]?使用description來替代content
以上就是關于pbootcms性能優化研究介紹,如果你有相關的建議可以評論或者加群交流。