页面刷新时,浏览次数如何不增加?

xiami232 2006-09-21 05:52:37
if(!IsPostBack)
{
if( ViewState["firstClick"] == null || ViewState["firstClick"].ToString()!="1")
{
count++;
ViewState.Add("firstClick", "1");
}
}

页面刷新后,ViewState["firstClick"]值为空,保存不住。
...全文
556 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Xml_explorer 2006-09-22
  • 打赏
  • 举报
回复
用了ViewState[]??
xiami232 2006-09-22
  • 打赏
  • 举报
回复
问题已解决。用了下ResponseRedirect将一个传过来的一个标志位去掉,从而不执行count++
xiami232 2006-09-22
  • 打赏
  • 举报
回复
-------------------------
刷新的话,页面的所有变量又要全部初始化,跟第一次打开加载是一样的
你可以看下有关页面生存期的相关东东
-------------------------

也就是说 ,刷新的话没办法通过存值来判断。

那有办法判断页面是否刷新么?就类似if(!IsPostBack)这种的。
Xml_explorer 2006-09-22
  • 打赏
  • 举报
回复
/*通常情况下,点刷新有没有回传服务器呢,如何知道。*/
就是你点当前刷新页面之前请求有没回传给服务器过.
你现在是要做页面的点击率吧,ViewState[]肯定不能正确统计啊,因为你只考虑到单个用户,
没有考虑到很多用户一起浏览的情况.
我做了个你测试下;当然我这种情况只是服务器没有重启统计才是正确的.
你可以在Application_end事件中把Count的值更新到数据库.还有就是同一个用户连续点刷新的时候Count会一直增加,不想这样的话你可以在Page_Load中自动触发一个事件回传给服务器,比如好象你手动点了个Button按钮后连续刷新页面Count值就不会一直增加了.
或者你用IP判断,不过在同个IP内网用户你也要考虑,小第刚毕业个人意见参考.
private static int count;//全局变量,只初始化一次
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
count++;

}
Response.Write(count);
xiami232 2006-09-22
  • 打赏
  • 举报
回复
---------------------
建议用cookies
不会的话自己上网查
---------------------
必须用么?浏览器可以设置不接受cookies的,用户会不会觉得不方便。
xu8512 2006-09-22
  • 打赏
  • 举报
回复
刷新的话,页面的所有变量又要全部初始化,跟第一次打开加载是一样的
你可以看下有关页面生存期的相关东东
xiami232 2006-09-22
  • 打赏
  • 举报
回复
-------------------------
判断IP或者再加个时间参数判断
-------------------------

判断IP好像需要用到cookies了吧。
xiami232 2006-09-22
  • 打赏
  • 举报
回复
-----------------------
当你刷新页面时,并不走你写的代码,
保存点击次数可以使用
1,session["count"]=session["count"]+1
2.ViewState["count"]=ViewState["count"]+1
3. static i=0;
i=i+1;
-------------------------
count倒不用担心,已经保存xml。
xiami232 2006-09-22
  • 打赏
  • 举报
回复
-----------------------------
页面刷新后,ViewState["firstClick"]值为空,保存不住。
我断点调试过,如果你请求的页面没有回传给服务器,你点刷新,
会执行if(!IsPostBack)
{
//执行
}
如果你请求的页面有回传给服务器,你点刷新,
会执行if(!IsPostBack)
{
//不执行
}
----------------------------------
通常情况下,点刷新有没有回传服务器呢,如何知道。
游园密语 2006-09-21
  • 打赏
  • 举报
回复
建议用cookies
不会的话自己上网查
Mypiger 2006-09-21
  • 打赏
  • 举报
回复
你的count是怎么定义的?
每次刷新页面都会从新定义一次的。
go_now 2006-09-21
  • 打赏
  • 举报
回复
当你刷新页面时,并不走你写的代码,
保存点击次数可以使用
1,session["count"]=session["count"]+1
2.ViewState["count"]=ViewState["count"]+1
3. static i=0;
i=i+1;
clingingboy 2006-09-21
  • 打赏
  • 举报
回复
判断IP或者再加个时间参数判断
xiami232 2006-09-21
  • 打赏
  • 举报
回复
---------------------
if( ViewState["firstClick"] == null && ViewState["firstClick"].ToString()!="1")
{
count++;
ViewState.Add("firstClick", "1");
}
---------------------
if的判断条件,ViewState["firstClick"]既然为空,ToString后当然不等于1。
Xml_explorer 2006-09-21
  • 打赏
  • 举报
回复
页面刷新后,ViewState["firstClick"]值为空,保存不住。
我断点调试过,如果你请求的页面没有回传给服务器,你点刷新,
会执行if(!IsPostBack)
{
//执行
}
如果你请求的页面有回传给服务器,你点刷新,
会执行if(!IsPostBack)
{
//不执行
}
xiami232 2006-09-21
  • 打赏
  • 举报
回复
-----------------------------
if(!IsPostBack)
{
//这里是页面第一次加载时执行的语句
}
当页面刷新时,if(!IsPostBack)里面的代码是不会被执行的。
------------------------------

实际上执行了。
oldmoon 2006-09-21
  • 打赏
  • 举报
回复
if( ViewState["firstClick"] == null && ViewState["firstClick"].ToString()!="1")
{
count++;
ViewState.Add("firstClick", "1");
}
活靶子哥哥 2006-09-21
  • 打赏
  • 举报
回复
ViewState["firstClick"] = "1";
冰宇枫 2006-09-21
  • 打赏
  • 举报
回复
if(!IsPostBack)
{
//这里是页面第一次加载时执行的语句
}
当页面刷新时,if(!IsPostBack)里面的代码是不会被执行的。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧