【问题标题】:How best to block multiple "counts" on a counter?如何最好地阻止计数器上的多个“计数”?
【发布时间】:2011-04-26 15:20:10
【问题描述】:

我有一个真正俗气的计数器,只需在访问时在计数器字段中添加一个即可。它没有计算页面点击量,但它仍然很俗气。

我需要做的是阻止某人一遍又一遍地点击刷新。完成这件事最简单的是什么?饼干?

我不希望记录每个访问者的 IP 地址等...一些简单的东西 - 在 C# asp.net mvc 中。

【问题讨论】:

    标签: c# sql asp.net-mvc hitcounter


    【解决方案1】:

    是的,cookie 是实现这一目标的一种简单方法。更简单的方法是简单地在 Session 中设置一个值 - 如果设置了,则此访问已被注册,因此我们不应再次增加计数器。

    这样您还可以计算每个会话的“访问次数”,这通常是衡量唯一访问次数的最佳方法。

    要实现的伪代码:

    if (Session["HasCountedThisVisitor"] == null) 
    {
        counter++; 
        Session["HasCountedThisVisitor"] = true;
    }
    

    【讨论】:

    • 啊,好电话。他们必须在“访问”之间完全终止会话。也许是这个和cookies的结合。谢谢!
    • @Chad,记住 Session 是由 cookie 实现的。因此,您很可能只想使用 cookie 或会话。使用 cookie,如果你想计算唯一的 visitors(不计算同一台机器上同一浏览器的后续访问),如果你想计算唯一的 visits(如in,如果访客明天回来,她会再次被计算在内)
    • 哦,是的......对不起,当我问这个问题时,就像凌晨 2 点。感谢您的回答!
    【解决方案2】:

    在增加计数器之前检查 Cookie 或会话变量是否已设置。

    【讨论】:

    • 谢谢,似乎是常见的建议。
    【解决方案3】:

    为什么?

    有大量免费的日志记录工具,有些会分析您的 IIS 日志,有些会为您提供一些 javascript 以放置在您的页面上。 Google Analytics 非常棒而且免费。

    你在这里重新发明轮子。

    【讨论】:

    • 不,我没有记录点击/访问/页面浏览量...我确实使用谷歌分析。我的计数器计算我的数据库中的一个对象。不过还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多