我有一个Web用户控件,它执行一些可能会产生大量数据计算的任务,我希望对其进行输出缓存,以便每个页面视图不会重新计算数据。它位于非常频繁访问的页面上,所以让它正确运行非常重要!
为了提供背景信息,它是我们游戏中心使用的: http://www.scirra.com/arcade/action/93/8-bits-runner 单击“统计信息”,图表和统计数据的数据来自此Web用户控件。
该控件的开头如下:
现在我遇到的困难是输出缓存需要依赖于GamID和ChartType两个因素。
这个控件被多次重复使用,每次使用都有不同的GameID和Type组合,我需要为每个组合创建一个缓存,但我很难找到如何实现。
例如,一个街机游戏可能传递
该控件在游戏页面上使用,类似于以下方式(实际参数设置在代码后端)。
任何帮助都将不胜感激!我花了一段时间在网上寻找答案,但仍无法解决这个问题。
编辑:
编辑:我尝试将此行添加到我的控件中: <%@ OutputCache Duration="20" VaryByControl="GameID;Type" %>
但是它只是在使用控件的ASPX页面上第一次设置
为了提供背景信息,它是我们游戏中心使用的: http://www.scirra.com/arcade/action/93/8-bits-runner 单击“统计信息”,图表和统计数据的数据来自此Web用户控件。
该控件的开头如下:
public partial class Controls_Arcade_Data_ArcadeChartData : System.Web.UI.UserControl
{
public int GameID { get; set; }
public Arcade.ChartDataType.ChartType Type { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
现在我遇到的困难是输出缓存需要依赖于GamID和ChartType两个因素。
这个控件被多次重复使用,每次使用都有不同的GameID和Type组合,我需要为每个组合创建一个缓存,但我很难找到如何实现。
例如,一个街机游戏可能传递
GameID = 93
和Type = GraphData
,另一个游戏可能是GameID = 41
和Type = TotalPlaysData
,还有一个可能是GameID = 93
但Type = TotalPlaysData
。它们应该返回不同的数据并有不同的输出缓存。该控件在游戏页面上使用,类似于以下方式(实际参数设置在代码后端)。
<div>Total Plays:</div>
<div class="count"><Scirra:ArcadeChartData runat="server" GameID="93" Type="TotalPlays" /></div>
<br /><br />
<div>Total Guest Plays:</div>
<div class="count"><Scirra:ArcadeChartData runat="server" GameID="93" Type="TotalGuestPlays" /></div>
etc.
任何帮助都将不胜感激!我花了一段时间在网上寻找答案,但仍无法解决这个问题。
编辑:
编辑:我尝试将此行添加到我的控件中: <%@ OutputCache Duration="20" VaryByControl="GameID;Type" %>
但是它只是在使用控件的ASPX页面上第一次设置
GameID
时,在该行上抛出错误对象引用未设置为对象的实例。
。