问题: 我有一个有50k +页面的网站,其中大多数只在创建时更新一次,我正在为这些页面构建一个缓存,因为它们不需要对内容进行任何频繁的更改。但我对一些事情感到困惑。
答案 0 :(得分:1)
答案 1 :(得分:0)
关于第一点 - 如果要缓存页面的其余部分,可以通过AJAX加载登录状态侧栏。由于AJAX请求的结果是独立的(并且可能是未缓存的),因此它将正确更新。
假设您实际上是将元标记作为页面内容的一部分发送,您可能需要等待实际向输出流写入任何内容,直到完成所有处理后,以便您可以自由地计算内容以任何顺序,即使它们在实际的页面HTML内容中更早或更晚。
答案 2 :(得分:0)
显然我没有关于你的设置的具体信息,但一个常见的策略是简单地在Memcached中缓存数据库结果/页面特定的内容。如果Memcached不是您的选项,您可以在服务器上创建一个可写目录,并在那里缓存特定于页面的内容。因此,您仍然会在每个请求上生成特定于用户的内容,但不会产生不必要的查询数据库的开销。
答案 3 :(得分:0)
在输出之前应用内容过滤器。
您可以简单地在模板中使用作为动态内容的引用ID的部分,并使用动态调用的结果替换它们。
示例:
<p>some cached content</p>
<div id="user_box"> {{USER_BOX}} </div>
<p>other cached content</p>
首先,获取缓存的内容,然后在代码中,将{{USER_BOX}}替换为函数调用结果,最后输出修改后的结果。
这样,您就不需要编写代码并执行额外的AJAX请求(服务器调用的性能越低)。
当然,如果你使用的是php,你可以使用像Twig(Symfony的一部分)这样的模板引擎处理你的缓存内容。这会增加一些额外的功能,如条件等。