2

我有一个网站,它的页面作为 html 字符串(使用 CKEditor 生成)存储在数据库中,以使用户能够在没有 HTML 知识的情况下编辑它们。该网站还广泛使用图片库(用户要求,所以我无法控制它)每个页面都有它的画廊。这使得网站非常缓慢。我已经阅读了 Guide 中的 Yii 优化,并做了一些查询缓存,这稍微改善了加载时间,但仍然很慢。

由于页面更新可能需要长达一个月的时间(仅当事情发生变化时)是否有一种站点范围的 Yii 缓存技术来模拟静态页面,直到页面被更改?因为我不是管理员,所以我无法控制安装 APC 或其他扩展。

也欢迎任何优化想法。

你可以在这里看到一个网站

4

2 回答 2

3

虽然很难给你一个“明确的答案”,但你可以做的最简单的事情(除了在Yii 的权威指南:性能中提到的优化)是使用页面缓存

由于您不能使用 APC 或 memcached,我建议您通过CFileCache使用文件缓存来缓存整个页面。一旦更新,您应该通过适当的 CacheDependency 使缓存无效。我已经使用Flushable 缓存依赖扩展来使缓存失效,使用 CActiveRecord 的 afterSave 挂钩。它很容易实现并且可以完成工作。

编辑:刚刚查看了您的网站并从您正在使用 Bootstrap 的菜单判断(也许使用 Yii-Booster?)。该站点确实非常慢,但这实际上可能是由于扩展在每次请求时都会发布其资产。我曾经在调试模式下遇到过 Yii-Booster 发布资产的确切问题(当时它甚至在禁用调试模式时发生)(https://github.com/clevertech/YiiBooster/pull/229)。

于 2013-02-11T09:03:40.437 回答
0

您可以使用Yii HTML Cache来创建页面的完整缓存。它会在您的资产中生成 html 文件并使用它直到生命周期结束或您清除资产。

您只需要安装扩展程序并在控制器的方法中添加几行beforeAction即可afterRender

于 2016-06-07T08:34:55.883 回答