【问题标题】:Caching ASP.NET server controls for a specified time将 ASP.NET 服务器控件缓存指定时间
【发布时间】:2015-04-08 19:50:51
【问题描述】:

我有一个服务器控件,上面有很多控件。这些控件的数据源每天刷新一次。我想将整个控件缓存 24 小时,一旦控件的数据源被刷新,我也想刷新服务器控件。我知道 OutputCache 标记下有一个缓存持续时间属性,但这对我不起作用。有没有一种方法可以让我在每天早上 6 点缓存服务器控件。使用内存缓存也不是我的选择。

谢谢 维杰

【问题讨论】:

  • 您可以使用数据库来存储缓存的服务器控件,并在每 24 小时后更新它们。
  • 除了在数据库中缓存服务器控件之外,还有其他方法吗
  • 如果你不想使用内存缓存,那么它是唯一可行的选择(不确定)。

标签: asp.net caching


【解决方案1】:

要缓存整个控件/页面,您应该选择输出缓存。要使用它,只需添加此指令并在 Duration 属性中以分钟为单位设置缓存持续时间:

<%@ OutputCache Duration="60" VaryByParamarybyparam="None" %>

例子:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="testWebApplication.WebForm1" %>
<%@ OutputCache Duration="60" VaryByParamarybyparam="None" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Caching</title>
</head>
<body>
    <form id="form1" runat="server">
        <%= DateTime.Now.ToString() %>
    </form>
</body>
</html>

但是,您只能使用 Application caching 缓存来自数据源的数据。

【讨论】:

    猜你喜欢
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2011-04-13
    • 2013-07-09
    • 2018-06-22
    • 1970-01-01
    相关资源
    最近更新 更多