类别:FRONTEND / 前端 / 日期:2020-05-07 / 浏览:4604 / 评论:6
最近在捣鼓站点前端框架的优化,发现博客的图片TTFB竟然高达1秒,而且还是40x40的缩略图.. 多番搜寻之后发现竟然是缩略图插件导致的,这就尴尬了,主要是我用的小鸡带宽很小,关闭缩略图的话,只能提供三四个人同时访问,因此只能想办法来解决这个问题。
期间咨询了一个插件开发者,在咨询问题的同时,突然灵光一闪,会不会是我伪静态规则导致的?果然给到我的答案就是,确实是插件伪静态的问题... 这就让我很尴尬了,如果按照插件作者讲的伪静态规则排序的话,我的网站直接500,按照我的规则排序的话,伪静态虽然能生成,但是与程序无法配合处理? 开发者告诉我说是服务器问题,可是我真的是找不出什么问题,如果一定是有问题的话,那就是zblog程序本身伪静态的问题,兼容性太差! 闲话少说,先说说解决思路吧。
有两种解决方式,一种是修改插件看看他是怎么解析的,一种是在模板加入判断处理。当然是选择后者了,前两天改那个评论插件让我现在都感到后怕!这里我们先看下原本的模板代码
{php} $order = array('log_ViewNums'=>'DESC'); $where = array(array('=','log_Status','0')); $array = $zbp->GetArticleList(array('*'),$where,$order,array(6),''); {/php} {foreach $array as $hotlist} {php} $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png|\.bmp]))[\'|\"].*?[\/]?>/"; $content = $hotlist->Content; preg_match_all($pattern,$content,$matchContent); if(isset($matchContent[1][0])) $src=IMGS::getPicUrlBy($matchContent[1][0],40,40,$type); //调用插件修改图片 else $src="/theme/{$theme}/style/images/pic.png"; {/php} {/foreach}
我们需要在IMGS插件处理图片之前加入IF判定,这里的加入方法有两种,一种是放在前面判断,如果没有发现缩略图,则调用插件修改图片,这种需要你能够解析计算出路径,主要是他的加密处理,跑起来也不见得会有多快。因此我选择了第二种,在后面加入判断,如下
该部分内容已隐藏,评论后 刷新页面 可见。
共有 6 条评论
看看怎么办到的
学习一下
优秀来学习
发表评论 / 取消回复