什么是最简单的访问计数器?

时间:2009-03-30 14:18:00

标签: c# asp.net

我想计算对我的整个网站的访问次数(或访问者,而不是网页请求或点击次数)。

我希望将每次访问存储在数据库中,以便将来显示包含此数据的图形。

此外,我希望它可靠,快速,不要为每个页面请求轮询到数据库。所以,我想我应该把一些代码放在一些入口点,但我不知道在哪里,而不是在Global.asax事件AppEndRequest中。我猜测会编写SessionStart或SessionEnd事件。

我该如何进行此次访问?

7 个答案:

答案 0 :(得分:5)

使用谷歌分析或类似的东西。这是最简单的解决方案。

答案 1 :(得分:1)

您可以使用自己的软件或使用现有的日志解析软件来解析现有的服务器日志。我知道微软的Log Parser能够在必要时将日志转换为sql。如果日志的格式不理解,解析器可以很容易地扩展为使用简单的com对象来执行解析。

答案 2 :(得分:0)

您只需更新数据库的计数器值即可。 您可以使用会话启动并在数据库中更新计数器valude 1 ..

答案 3 :(得分:0)

请注意,Syed的建议将跟踪访客的数量,而Jhonny将跟踪页面点击。你可能想决定你要去哪一个。

假设您想要访问者,我同意Syed,在全局捕获Session_Start并在数据库中增加一个数字。

如果您在数据库中存储额外信息,您可以获得更多有用的信息 - 例如,像这样的表:

tblVisitor
- SessionID nvarchar(32)
- SessionStart datetime

这可能比增加一个计数器更好,因为你可以检查上个月今年等的访问者数量等,并获得有关时间的信息一天的使用。

然而,你确实要求最简单的方法,一个简单的计数器肯定会完成。

答案 4 :(得分:0)

总的来说,我同意Rashack的一般原则,即最好的办法是利用第三方的免费服务 good 进行访客分析。除了Google Analytics之外,您可能还需要考虑Quantcast

答案 5 :(得分:0)

答案 6 :(得分:-1)

我认为您可以在Global.asax上放置一个全局变量,在Application_OnEndRequest上增加它,在其他页面中,提供用于将值保存到数据库的代码,作为管理任务。

void Application_OnEndRequest(object sender, EventArgs e) {
    int visits;
    if (int.TryParse(Application["visits"], out visits)) {
        visits++;
    } else {
        visits = 1;
    }
    Application["visits"] = visits; 
}