> php教程 > php手册 > [原创]关于Yii使用过多widget导致加载速度慢的解决办法

[原创]关于Yii使用过多widget导致加载速度慢的解决办法

WBOY
풀어 주다: 2016-06-06 20:09:12
원래의
1331명이 탐색했습니다.

做Yii的时候发现凡是带有widget的页面加载速度都不是太理想,感觉是每次页面加载前都会判断widget附带的CSS和JS是否完整地复制到assets文件夹中,但有一个页面慢得实在受不了了,扒了一下源码,发现所有的widget加载资源文件时都用了Yii::app()->getAssetMan

做Yii的时候发现凡是带有widget的页面加载速度都不是太理想,感觉是每次页面加载前都会判断widget附带的CSS和JS是否完整地复制到assets文件夹中,但有一个页面慢得实在受不了了,扒了一下源码,发现所有的widget加载资源文件时都用了Yii::app()->getAssetManager()->publish()这个函数,查了一下手册,是这么定义的:
public string publish(string $path, boolean $hashByName=false, integer $level=-1, boolean $forceCopy=false)
最后一个参数:
whether we should copy the asset file or directory even if it is already published before. This parameter is set true mainly during development stage when the original assets are being constantly changed. The consequence is that the performance is degraded, which is not a concern during development, however. This parameter has been available since version 1.1.2.
大体意思就是是否强制刷新资源文件,即使已经加载了。
又看了一下各种widget插件的定义,都把最后一个参数设置成了YII_DEBUG,也就是说当程序是在调试开发模式时,始终是强制加载的,这样解决方案就出来了,把入口文件中的defined(‘YII_DEBUG’) or define(‘YII_DEBUG’,true);改成defined(‘YII_DEBUG’) or define(‘YII_DEBUG’,false);问题完美解决!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿