返回新闻列表

PbootCMS速度优化方法 增加lfield属性限制字段 大数据量

发布日期: 2022-01-06 | 来源: 智软设计工作室

网页速度影响因素

首先说明这里讲的网页速度是排除掉静态资源加载的,这里的速度是用户访问域名然后程序响应回来所花的时间,主要影响因素有以下几点:

1、服务器配置

配置高的服务器响应速度差别还是很明显的,但是一般情况下咱们的数据量不是超大,例如几万,那么区别不明显。

2、CMS程序

这个可能是影响这个速度最明显的地方,PbootCMS目前发现的是如果数据量大、内容自定义字段过多、页面中判断层级大于2级等都容易造成网页响应速度下降明显。

3、数据库影响

PbootCMS默认使用的是sqlite,如果数据超过1w建议换成mysql。如果说一开始确定好了采集方向,那提前使用mysql会节省很多头发。

PbootCMS速度优化方法

1、减少if层级,控制在2层

2、数据量和字段数一般没法控制,看具体项目,所以得考虑前台调用代码去优化

3、页面纯静态化,目前还没有此功能暂不考虑

下面针对前台调用代码进行分析下:

通过查找手册公共标签-其他格式化标签发现有个lfield参数,经过测试确实效果明显!

1.png

使用案例,这些因为只需要调用title和date所以做了限制查询这两个字段即可。

{pbootcms:list scode=2 num=8 order='date desc' lfield=title,date}    [list:title]
    [list:date style=Y-m-d]
{/pbootcms:list}

博主刚提到的那个站通过此方式首页响应速度从2s左右控制到了1s以内,基本解决了问题。


性能优化原理解析:

2.png

通过查看数据库查询语句发现PbootCMS对于列表数据默认是查询内容主表ay_content和附表ay_content_ext的全部字段,这就导致了数据多的时候性能明显下降,特别注意的是附表是内容新增字段存放位置,这里就解释了为什么字段新增过多导致卡的原因了。

因此核心就是在于默认得限制字段调用,所以博主建议列表内容调用的时候养成默认增加lfield属性限制字段使用,同时也建议避免content在列表内容中调用,因为content字段数据一般都比较多,可以使用description字段替代。

这里提供个列表内容调用模板:

{pboot:list scode=20 num=20 order=date lfield=title,ico,date,description}                        [list:title lencn=20]            [list:description len=50] [list:date style=Y-m-d]
{/pboot:list}

// lfield=title,ico,date,description 代表限制调用字段title,ico,date,description
// [list:description len=50] 使用description来替代content

推荐技术资料

pbootcms模板里面写php判断的方法-判断session

2024-12-12

比方说我们这里判断购物车,可以很灵活的使用php代码。<?php// 启动会话session_start();// 判断是否存在 'cart' sessionif (isset($_SESSION['cart'])) { $cart = $_SESSION['cart']; echo '购物车数据:<pre>'; pri

阅读更多

pbootcms搜索页面设置不同模板

2023-07-08

<formaction="{pboot:scaction}"method="get">关键字:<inputtype="text"name="keyword"><inp

阅读更多

php简单Session购物车功能function函数

2024-03-14

<?php//启动会话session_start();//初始化购物车if(!isset($_SESSION['cart'])){$_SESSION['cart']=array();}//判断产品是否已经在购物车中functionisProductInCart($product_id){

阅读更多

Ueditor怎么增加模板,添加模板解决方法-方便后面添加产品

2023-02-28

Ueditor怎么增加模板,直接进入,模板js目录:dialogs/template/config.js添加即可。参数说明:pre:模板选择时候的预览图,可自定义。title:模板预览时候显示的title 'preHtml':预览的代码'html': 插入的代码

阅读更多

google翻译api参数设置,google.translate.TranslateElement 参数配置

2021-11-11

<divid=”google_translate_element”style=”display:none;”></div><scripttype=”text/javascript”src=”//translate.google.cn/translate_a/element.js?cb=googleTranslateElementInit”></script><scripttype=”text/javascript”>fu

阅读更多

.htaccess HTTP 80 强制转 HTTPS 443规则分享

2024-06-18

HTTP 80 强制转 HTTPS全站采用https协议访问,所以需要http重定向到https,只需要在.htaccess加入下面规则在相应的网站根目录新建 .htaccessRewriteEngineOnRewriteCond%{SERVER_PORT}80RewriteRule^(.*)$https://%{HTTP_HOST}/$1[R,L]COPY

阅读更多

PbootCMS栏目页 详情页获取顶级栏目大图

2022-05-19

PbootCMS栏目页 详情页获取顶级栏目大图,这样不用每个子类都设置栏目大图banner{pboot:sort scode={sort:tcode}}<div class="nybanner"><img src="[sort:pic]" alt="[sort:name]"/></div>{/pboot:sort}

阅读更多

解决移动端。Safari悬停效果(:hove移动效果)需要点击二次,才能实现跳转或者点击事件弹窗

2023-08-14

解决方案是从css中删除:hover状态,考虑一下,移动浏览器不应该有:hover状态,因为没有悬停。如果您想在桌面上保持悬停状态,可以使用media 来判断pc端,如下所示@media (min-width: 992px) { .button:hover { background: '#fff' }}

阅读更多

正则表达式 删除注释 -HTTrack Website webzip版权插入的html注释删除

2022-06-09

我们有的时候爬一些网站,会出现一些版权html注释在里面。手动删除起来麻烦下面直接用这个正则表达式 删除注释HTTrack Website和 webzip版权 应该都可以用。webzip目前还没测试去掉 注释 标记<!--[/!]*?[^<>]*?>下面在分享一些其他常用的正则<[/!]*?[^<>]*?>去掉HTML 

阅读更多