统计页面访问数量

要统计页面的数量,我们必须把用户的从哪个页面到哪个页面插入数据库中,再由存储过程计算出各个页面

访问数量。我只说如何把来源页面和目的页面插入到数据库。

一般情况下,来源页面是为 Page.Request.ServerVariables["HTTP_REFERER"],目的页面

为Page.Request.ServerVariables["SCRIPT_NAME"],
但有特殊情况下来源页面通过前面方法得不到的

有两种情况是不能用上面的方法:
1.当目的页面是pop页面时,火狐浏览器是可以让来源页面通

过Page.Request.ServerVariables["HTTP_REFERER"],但ie浏览器就不行了。
那我们如何获取来源页面了,我们通过cookie来存上个页面的目的页面,如果再点击就把上个页面存的目的

页面存成此此页面的来源页面。
if(Page.Request.ServerVariables["HTTP_REFERER"]==null)就取上个页面的目的页面,否则就

取Page.Request.ServerVariables["HTTP_REFERER"]。

2当用户按F5或右键刷新时,我们要避免把数据插入到数据库。那就要我们判断用户是否做了此操作。
其实就是判断用户是否刷新。当然可在js设置个标志位来判断,但这样要每个页面都写。
我选择在服务器端来判断,但有一点小问题。
我判断上次点击的的来源页面和目的页面是否跟下一次的页面相同,如果相同则认为是刷新了。
代码如下

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 1  if (Request.Cookies["ips"]["LastOriginalPagePath"!= null && Request.Cookies["ips"]
 2
 3["LastDestinationPagePath"!= null)
 4ExpandedBlockStart.gifContractedBlock.gif            {
 5                if (Request.Cookies["ips"]["LastOriginalPagePath"].ToString() != 
 6
 7Request.Cookies["ips"]["LastDestinationPagePath"].ToString())
 8ExpandedSubBlockStart.gifContractedSubBlock.gif                
 9                   if(Page.Request.ServerVariables["HTTP_REFERER"!= 
10
11null&&Page.Request.ServerVariables["SCRIPT_NAME"]!=null)
12ExpandedSubBlockStart.gifContractedSubBlock.gif                   {
13                       if (Request.Cookies["ips"]["LastOriginalPagePath"].ToString() == 
14
15Page.Request.ServerVariables["HTTP_REFERER"].ToString() && Request.Cookies["ips"]
16
17["LastDestinationPagePath"].ToString() == 
18
19Page.Request.ServerVariables["SCRIPT_NAME"].ToString())
20ExpandedSubBlockStart.gifContractedSubBlock.gif                       {
21                           bolIsReFresh = true;
22                       }

23                            
24                   }

25                }

26            }

27Response.Cookies["ips"]["LastOriginalPagePath"= Page.Request.ServerVariables["HTTP_REFERER"];
28            Response.Cookies["ips"]["LastDestinationPagePath"= 
29
30Page.Request.ServerVariables["SCRIPT_NAME"];
31

但不足之处就是当点击的页面还是到本页面,此种方法就不能判断了。
如果要做得完美,只能在这样的页面js上做处理。

转载于:https://www.cnblogs.com/dewin/archive/2009/06/10/1500226.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值