1

正如我在前面的问题中提到的,我在网站的性能方面遇到了问题……一些 SQL 查询正在杀死服务器。但是,正如这篇文章的标题所提到的,我查看了 OutputCache 页面指令以提高站点的性能。

虽然,我遇到了一些关于这个指令的问题: 1-如果我有一个 web 用户控件,它在一个页面中声明了一个 OuputCache 指令,也有一个指令,哪个会“获胜”?2-关于持续时间的最佳做法是什么?我也想有一个滑动窗口。

感谢您的帮助,请访问http://www.developerit.com

4

2 回答 2

1

在没有缓存的请求中,页面和控件都将被创建,然后添加到输出缓存中。如果页面被缓存,控件将不会被创建,无论它是否在缓存中——它的标记包含在页面的缓存副本中。如果页面没有被缓存而控件被缓存,则该控件的缓存标记将在页面中使用。

于 2010-07-23T21:20:57.217 回答
0

这是一篇关于输出缓存的好文章:http ://www.4guysfromrolla.com/articles/121306-1.aspx 。

通常,您似乎正在查看页面和片段缓存。如果可以的话,您要做的是缓存页面,因为这将为您带来最佳的性能优势。但是,如果您在页面上有必须为每个用户动态更改的区域,例如:您在页面顶部说“Hi {username}”,那么您需要查看片段缓存。

片段缓存不如页面缓存有效,因为输出必须从缓存信息和动态信息拼接在一起,但它通常仍然比没有缓存好得多!

这是一门艺术,根据页面的功能和数据库上的负载来调整缓存,但它可以使页面加载比非缓存更快的数量级。

仅供参考 - 如果数据库查询正在杀死该站点,您可能还想查看驯服它们和/或单独缓存它们的输出,这样您就不必继续访问数据库以获得相同的信息。

还要了解用于缓存的 'varyByParam' 也非常有用 - 假设您有 3 种语言的页面,您可以使用 varyByParam 为每种语言缓存一个页面,只要您的 Url 某种语言组件可以选择向上。

HTH,兰斯

于 2010-05-14T07:25:52.653 回答