通过配置输出缓存改进页面呈现效果

如果网站收到大量访问,可以为经常访问的页面配置页面输出缓存,以提高网站性能。

注意

如果要使用页面输出缓存,必须为站点启用发布功能。

本文内容

关于页面输出缓存

页面输出缓存存储给定页面上所有控件的呈现输出,并且还存储此预呈现页的多个不同版本。 可以在网站集级别、网站级别和单个页面布局上配置页面输出缓存设置。 默认情况下,页面输出缓存处于关闭状态。

第一次将页面呈现给给定用户类中的用户之后,每次用户在同一类中查看该页面时,页面加载速度更快,因为.aspx页上的控件不需要再次运行来生成 HTML。 减少了呈现页面所需的时间。 页输出缓存可以提高服务器性能,因为它减少了服务器控制活动和对数据库的调用。

在决定使用输出缓存来提高页面和页项呈现的性能之前,可能需要考虑以下输出缓存的潜在优点和缺点列表。 以下列表并不详尽,可能还会有其他注意事项。

输出缓存的优点 输出缓存的缺点
  • 每个等效的内容类 ((例如页面或页面中的项)) 在最初呈现后接收更快的响应,从而缩短延迟。
  • 在初始呈现后,每个服务器使用更少的 CPU 时间和精力来为同一页提供服务。
  • 由于输出缓存减少了流量,呈现页的每个数据源都可以缩放,从而为更多 Web 客户端提供服务。
  • 对于为其提供输出缓存版本的页的每个页面请求,服务器不必:
    • 往返数据库以提取.aspx页的源代码和页面上的任何 .ascx 控件。
    • 重新加载并重新呈现控件。
    • 重新查询控件依赖的任何数据源获取数据。
  • 输出缓存会消耗额外的内存。 页面的每个版本都会消耗 Web 客户端上的内存。
  • 与两个或更多前端 Web 服务器一起使用时,输出缓存可能会影响一致性。 可以将缓存配置文件配置为不为每个请求检查更新,例如,指示它忽略对输出缓存中网页版本的更改,直到原始页面更新 60 秒。 如果你的拓扑中有两个前端 Web 服务器,并且根据用于路由用户请求的负载均衡器,如果页面由一台服务器呈现,然后后续请求路由到该 60 秒窗口中的第二台服务器,则网站内容的读取者可能会看到不一致。

返回页首

创建新的缓存配置文件

缓存配置文件描述每种类型的页输出缓存的特定缓存设置。 缓存配置文件定义以下类型的缓存行为:

  • 应在缓存中保留项的时间长度
  • 安全修整策略
  • 设置的过期时间,例如持续时间和更改
  • 基于用户权限、用户权限和其他自定义变量的缓存分区。

由于可以为网站集集中定义缓存配置文件,因此可以在一个位置更新配置文件,并且更改会立即在整个网站集中实现。 必须是网站集管理员才能定义新的缓存配置文件。

注意

缓存配置文件确定网站集、单个网站或应用缓存配置文件的母版页的页面输出缓存的行为。

  1. 转到网站集中顶级网站的主页。

  2. 在“ 网站操作” 菜单 按钮图像 上,单击“ 网站设置”。

  3. “网站集管理”下,单击“ 网站集缓存配置文件”。

  4. 在“缓存配置文件”页上,单击“ 添加新项”。

  5. “标题 ”部分中,键入新缓存配置文件的标题。

  6. “显示名称” 部分中,键入缓存配置文件的名称。

    显示名称显示在网站所有者和页面布局所有者的可用缓存配置文件列表中。

  7. “显示说明 ”部分中,键入用于缓存配置文件的说明。

  8. “执行 ACL 检查”部分中,选择“检查”框,以确保缓存中的所有项都经过安全修整。

    虽然可以清除“检查”框以提供额外的速度,但应仅针对没有需要安全修整信息的网站或页面布局执行此操作。

  9. “已启用”部分中,选择“检查”框以启用缓存。

  10. 在“ 持续时间 ”部分中,键入缓存版本可用的秒数。

  11. 在“检查更改”部分中,选中“检查”框,在每个页面请求上验证网站是否未更改,并将在对站点所做的更改时刷新缓存。

    虽然可以清除“检查”框以提高性能,但执行此操作时,系统不会检查站点的“持续时间”部分中指定的秒数的更新。 这可能会导致用户看不到最新信息。

  12. “根据自定义参数变化” 部分中,键入 ASP.NET 2.0 中指定的自定义参数 HttpCachePolicy.SetVaryByCustom

    注意

    有关此处和以下步骤中的参数的更多详细信息,请参阅 MSDN 上的 .NET Framework 类库。

  13. “根据 HTTP 标头变化 ”部分中,键入 ASP .NET 2.0 中指定的自定义参数 HttpCachePolicy.VaryByHeaders

  14. “根据查询字符串参数变化” 部分中,键入 ASP .NET 2.0 中指定的查询参数 HttpCachePolicy.VaryByParams

  15. 在“根据用户权限变化”部分中,选中“检查”框,以确保用户必须对所有安全对象具有相同的有效权限,才能查看与任何其他用户相同的缓存页。

  16. “可缓存性 ”部分中,选择 ASP .NET 2.0 中指定的缓存类型 HttpCacheability

  17. 在“安全进行身份验证使用”部分中,为要允许管理员和页面布局设计器应用于经过身份验证的方案的策略选择检查框。

  18. “允许编写者查看缓存的内容”部分中,选择“检查”框以绕过具有编辑权限的用户缓存其页面的正常行为。

    在知道页面将发布但不包含可能签出或以草稿形式存在的内容(例如内容查询 Web 部件)的情况下,启用此行为。

  19. 单击“保存”。

返回页首

为网站集配置页面输出缓存设置

必须是网站集管理员才能为网站集配置页面输出缓存设置。

  1. 在“ 网站操作” 菜单 按钮图像 上,单击“ 网站设置”。

  2. “网站集管理 ”部分中,单击“ 网站集输出缓存”。

  3. 若要在网站集中启用输出缓存,请单击“启用输出缓存检查”框。

    页面上会显示缓存设置的列表。

  4. “默认页面输出缓存配置文件” 部分的 “匿名缓存配置文件” 列表中,选择要用于匿名用户的缓存配置文件,然后在“ 经过身份验证的缓存配置文件” 列表中,选择要用于经过身份验证的用户的缓存配置文件。

    这基于站点上允许的身份验证方法优化缓存的使用。 页面输出缓存配置文件特别影响门户发布页面。

  5. “页面输出缓存策略 ”部分中,执行以下一项或多项操作:

    • 若要为发布网站设置不同的缓存配置文件,请选择“发布网站可以使用其他页面输出缓存配置文件检查”框。
    • 若要为页面布局设置不同的缓存配置文件,请选择“页面布局可以使用其他页面输出缓存配置文件检查”框。
  6. 若要在网站集的页面上显示其他缓存信息,请在“调试缓存信息”部分中,选中“对页面启用调试缓存信息检查”框。

    这包括上次呈现页面的日期和时间。

  7. 单击“确定”。

返回页首

在站点级别配置页面输出缓存设置

使用以下步骤为发布网站配置页面输出缓存设置。 必须具有站点的“完全控制”权限才能为网站配置页面输出缓存设置。

  1. 在“ 网站操作” 菜单 按钮图像 上,单击“ 网站设置”。
  2. 在“ 站点管理”下,单击“ 网站输出缓存”。
  3. “匿名缓存配置文件”下,执行下列操作之一:
  4. 若要继承在“网站集输出缓存设置”页上配置的站点范围匿名配置文件,请选择“ 继承配置文件 <名称>”。
  5. 若要为页面选择其他匿名缓存配置文件,请单击“ 选择页面输出缓存配置文件”。
  6. “经过身份验证的缓存配置文件”下,执行下列操作之一:
  7. 若要继承在“网站集输出缓存设置”页上配置的站点范围的经过身份验证的配置文件,请选择“ 继承配置文件 <名称>”。
  8. 若要为页面选择其他 authenticatedcacheprofile,请选择“选择页面输出缓存配置文件”。
  9. 若要将设置应用到网站集中的子网站,请选中“将这些设置应用于所有子网站”复选框。
  10. 单击“确定”。

返回页首

为页面布局配置页面输出缓存设置

使用以下步骤配置将在每个页面布局中使用的经过身份验证的匿名缓存配置文件。 必须至少是网站Designer才能为页面布局配置输出缓存。

  1. 在“ 网站操作” 菜单 按钮图像 上,单击“ 网站设置”。

  2. 在“ 库”下,单击“ 母版页和页面布局”。

  3. 在“母版页库”页上,指向要应用缓存配置文件的页面布局的名称,单击出现的箭头,然后单击“ 签出”。

  4. 再次指向页面布局,单击出现的箭头,然后单击“ 编辑属性”。

  5. 请执行下列一项或全部操作:

  6. 在“ 经过身份验证的缓存配置文件 ”框中,选择要应用于页面布局的经过身份验证的缓存配置文件。

  7. 在“ 匿名缓存配置文件 ”框中,选择要应用于页面布局的匿名缓存配置文件。

    注意

    在某些网站上,可能需要先从“内容类型”部分选择“页面布局”,然后才能看到缓存配置文件选项

  8. 单击“保存”。

  9. 指向要检查的页面布局的名称,单击出现的箭头,然后单击“Check In”。

返回页首