我有一个博客网站,每个页面上都有一个显示该页面访问总次数的博客网站。计算出每次页面加载后,异步调用都会发送到服务器,该服务器会将帖子的匹配增加到+1
。
但问题是,如果我不断更新页面,它会不断增加计数器。但我想让它变得有点透明,只为独特的访客增加。
我应该记录过去10或25位访客的IP
,并检查访客是否最近来访。
或者我应该存储cookie并读取cookie是否存在而不是增加?
答案 0 :(得分:0)
这在很大程度上取决于您希望数据的准确程度。如果它应该只是一个简单的小计数器,设置一个cookie就可以了。请注意,这很容易伪造,因为您可以在删除cookie后回来。
存储IP地址也很容易伪造,并且它还包括对数据库的额外负载。对于单个路由器后面的多个用户来说,这也是一个问题,共享相同的IP地址。
我认为最软化的方法是使用像http://piwik.org/这样的分析工具,并使用其API来获取特定网页上的唯一身份用户数。根据你打算做的事情,可能会有点慢和略微矫枉过正。
答案 1 :(得分:0)
我会设置一个cookie,它会在一天之后或任何时候到期,但也会让用户选择停用cookie,在这种情况下,您需要记录IP。
答案 2 :(得分:0)
尝试类似下面代码的内容。
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>Applcation object in JSP</title>
</head>
<body>
<%
Integer hitsCount =
(Integer)application.getAttribute("hitCounter");
if( hitsCount ==null || hitsCount == 0 ){
/* First visit */
out.println("Welcome to my website!");
hitsCount = 1;
}else{
/* return visit */
out.println("Welcome back to my website!");
hitsCount += 1;
}
application.setAttribute("hitCounter", hitsCount);
%>
<center>
<p>Total number of visits: <%= hitsCount%></p>
</center>
</body>
</html>