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

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

WBOY
Libérer: 2016-06-06 20:09:12
original
1333 Les gens l'ont consulté

做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);问题完美解决!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal