我想统计某一页面的点击率,以session+1来做!就是每次page_load里面session+1;但这样做如果遇见有人恶意 F5刷新的话,数据会一直加.有什么办法判断用户是第一次加载呢?Page.IsPostBack不行,刷新的时候一直是 false;
或者 有什么好的方法来统计,在刷新的时候不会自动+1;
在线等,希望高手指点.PS: 查资料可以屏蔽F5,但不会禁止用户鼠标去点!
或者 有什么好的方法来统计,在刷新的时候不会自动+1;
在线等,希望高手指点.PS: 查资料可以屏蔽F5,但不会禁止用户鼠标去点!
解决方案 »
- 关于DataList GridView ListView 数据绑定
- Word打印打印机设置
- 新手求教!!!
- teechart for .net中如何实现y轴上的分区?
- JS不能隐藏DIV??求救
- javascript如何获得表格选取中列的值?
- asp.net +sql2000开发的网站上传的时候数据库是怎么上传的?
- win2000下安装了iis,vsFrameWork想做asp.net开发,但不想装vs.net,可行吗?
- 紧急求源,在线等(关于session对象的问题)!!!!
- 在vs2017中前台使用NuGet引用vue,和element为什么没有对应的js文件,另外该如何在VS2017中使用vue
- 调用word时错误问题
- SqlDataSource工作原理?
最好就是放数据库里,同时对应来访的IP,记录登陆时间,这样判断,定一个时间内刷新不加
先取得客户端IP,记录到数据库中,然后在24小时之类的同一IP只能投一次票
这样做的缺点是,有写是共用一个网关上网,那么他们所有人只能投一次票
看楼主选择了
是否还有更好的解决方法呢?期待,我会一直关注,明天晚上揭贴,分都有
2 用全局变量
3 cookie+session
{
public class Page : System.Web.UI.Page
{
private bool _refreshState;
private bool _isRefresh; public bool IsRefresh
{
get
{
return _isRefresh;
}
} protected override void LoadViewState(object savedState)
{
object[] allStates = (object[]) savedState;
base.LoadViewState(allStates[0]);
_refreshState = (bool) allStates[1];
_isRefresh = _refreshState == (bool) Session["__ISREFRESH"];
} protected override object SaveViewState()
{
Session["__ISREFRESH"] = _refreshState;
object[] allStates = new object[2];
allStates[0] = base.SaveViewState();
allStates[1] = !_refreshState;
return allStates;
}
}
}通过页面的IsRefresh属性就可以判断是不是刷新了!
protected void Application_Start(Object sender, EventArgs e)
{
}
里锁上这个用户就可以了
-----------------------------------------------
先谢谢,当我没点击页面的时候,刷新根本不变化,除非我点了页面上的控件以后才会发生变化