我有一个网站,它的网页存储在数据库作为超文本标记语言字符串(用CKEditor生成),使用户可以编辑他们没有超文本标记语言的知识。该网站还广泛使用图片库(用户要求,所以我无法控制它)的每个页面与其图库。这使得网站变得非常慢。我在指南中读到了Yii优化,并做了一些查询缓存,这使加载时间减少了一点,但仍然很慢。
由于页面更新可能需要长达几个月的时间(只有当事情发生变化时),是否有全站Yii缓存技术来模拟静态页面,直到页面被更改?我没有控制安装APC或其他扩展,因为我不是管理员。
任何优化的想法也是受欢迎的。
您可以看到站点here
发布于 2013-02-11 17:03:40
虽然很难给您一个“明确的答案”,但您可以做的最简单的事情(除了在Yii's Definitive Guide: Performance中提到的优化之外)就是使用page caching
由于您不能使用APC或memcached,因此我建议您通过CFileCache使用文件缓存来缓存整个页面。一旦它被更新,你就应该通过适当的CacheDependency使缓存无效。我已经通过CActiveRecord的afterSave钩子使用了Flushable cache dependency extension来使缓存失效。它很容易实现,并且可以完成这项工作。
编辑:只是看看你的网站,从菜单判断你正在使用Bootstrap (可能使用Yii-Booster?)。该站点确实非常慢,但这实际上可能是因为扩展在每次请求时都会发布其资产。我曾经在调试模式(当时甚至在禁用调试模式时)使用Yii-Booster发布资产时遇到过这个问题(https://github.com/clevertech/YiiBooster/pull/229)。
发布于 2016-06-07 16:34:56
您可以使用Yii HTML Cache创建页面的完全缓存。它在你的资产中生成html文件,并使用它,直到生命周期结束或你清理你的资产。
您只需安装扩展并向控制器的beforeAction和afterRender方法添加几行代码即可。
https://stackoverflow.com/questions/14808651
复制相似问题