Toggle navigation
首页
技术
骑行
羽毛球
资讯
联络我
登录
Craft CMS之performance
2017-08-16
CraftCMS
# 网站效能低下的原因 如果网站的Navigation是根于structure结构的entities生成,生成时又多次进行数据库查询,则整个Navigation的生成会产生多次数据库查询。 另外因为每一个页面都包含Navigation,所以当用户访问不同页面时,Navigation都会重新生成一次。 # 如何改善? ## 最优的改善方案是利用craft cms的template cache功能,可以用最简单的方式大幅提升性能: > https://craftcms.com/docs/templating/cache ``` {% cache %} {% for block in entry.myMatrixField %} <p>{{ block.text }}</p> {% endfor %} {% endcache %} ``` Craft cms的template cahce,是把一个动态的block输出的html保存起来,在第一次生成html以后,后续如果block中的内容没有做改变,Craft 会直接将保存好的html直接输出而不用重复做复杂的计算 template cache存储在db的templatecaches, templatecacheelements, templatecachecriteria 3个表中,且没有办法配置存储到其他的媒介比如内存等。 ### 开启devModd查看改善细节 在craft/config/general.php中配置devMode=true,会在console中输出调试信息,打开chrome的开发者模式,进入console页签就可以看到。 在某个项目中,某个页面的query次数在添加cache前后的变化如下:  开启devMode之后Craft做了哪些改变,可以参照: > https://craftcms.com/support/dev-mode ## 重构代码 重构代码,优化Navigation生成的方式也是一种方法,但是需要额外耗费一些时间来优化。 参考: * [What are the cache options available to a Craft installation?](https://craftcms.stackexchange.com/questions/13382/what-are-the-cache-options-available-to-a-craft-installation/13383#13383) * [The Craft {% cache %} Tag In-Depth](https://nystudio107.com/blog/the-craft-cache-tag-in-depth) * [Performance optimization in Craft CMS](http://www.patpohler.com/performance-optimization-craft-cms/)
×
本文为博主原创,如需转载,请注明出处:
http://www.supperxin.com
返回博客列表