缓存页面,但计数点击
我有一个aspx页面,计数每次访问并创建一个cookie。但是,如果我使用OutputCache页面,则只计算请求页面的第一位访问者。我怎样才能防止这个错误?缓存页面,但计数点击
Page指令:
<%@ OutputCache Duration="1200" VaryByParam="mode;page;sid;tid" %>
代码隐藏:
protected void Page_Load(object sender, EventArgs e)
{
//Load single post data
#region Hit Counter
//hit counter lasts during session
if (Session["LastHit" + postId] == null)
{
cmmnd.CommandText = "UPDATE Posts SET Hits=Hits+1 WHERE [email protected];";
cmmnd.ExecuteNonQuery();
Session["LastHit" + postId] = 1;
}
#endregion
}
这是不是一个错误,而是由设计。如果页面位于缓存中并且“缓存的输出仍然有效”,则页面不会被重新处理。您可以在验证阶段运行代码,这可以帮助您执行计数访问并将其添加到cookie的任务。以下可能的帮助:
什么是这点算?营销信息?使用脚本中的轻量级分析计数器或页面中的图像,不要混入生成页面本身。错误在于,您正在为繁忙的请求添加额外的工作,而不是根据自己的请求提供额外的工作。
只是计数博客文章点击。 – 2010-08-22 22:07:28
在这种情况下,我甚至不会打扰分析计数器,但依赖于解析IIS日志。为什么要记录已经记录的数据?如果你真的关心谁在重新查看完全缓存的页面(而不是服务器上的缓存),那么你可以使用分析计数技巧,或者使用像谷歌分析这样的服务(为什么你会因为会话转向什么时候可以?)。 – 2010-08-22 22:13:16
发表一些代码。 – 2010-08-22 21:25:49