缓存动态网页(页面可能是99%静态但包含一些动态内容)

时间:2014-01-07 20:46:42

标签: javascript php python ruby-on-rails caching

为静态网页设置一层缓存是一个非常直接的概念。另一方面,PHP,Python,Ruby等大多数动态生成的网页都使用静态模板,而且只有一小部分动态内容。如果我的页面频繁出现并且99%是静态的,当1%的动态内容特定于查看该页面的每个用户时,我仍然可以从缓存中受益吗?我觉得好像有两个不同版本的同一个问题。

  • 用户整个会话的静态内容,例如每个页面上显示的静态顶栏(例如Facebook上可能包含用户图片和名称的网站顶部栏)。此用户特定信息是否可以在Javascript中本地缓存,以防止需要为每个页面加载请求相同的信息?

  • 99%静态且包含1%动态内容的页面,这些内容对于给定的查看者而言大多是唯一的,并且因页面而异(例如,页面仅通过指示用户是否“喜欢”某些内容而有所不同通过竖起大拇指图标显示页面上的内容。因此,除了页面上某些项目的少量“竖起大拇指”图标外,大部分内容都是静态的。

我很欣赏对此的任何见解。

1 个答案:

答案 0 :(得分:4)

您可以将页面加载为静态页面,然后使用AJAX加载少量动态内容。然后,您可以根据需要缓存页面而不会出现问题。如果动态内容的数量或某些其他方面阻止您这样做,您仍有几个选项可以提高性能。

如果你的站点被频繁命中(比如每秒几次),你可以在短时间内缓存整个动态生成的页面,例如一分钟或三十秒。如果使用合理的时间间隔,这将为您带来巨大的性能提升,并且可能对用户不太明显。

要进一步改进,请考虑缓存数据库查询和应用程序的其他部分,即使您在短时间内这样做。