| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 447 人关注过本帖
标题:关于时间统计的问题
只看楼主 加入收藏
3201
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-4-12
收藏
 问题点数:0 回复次数:3 
关于时间统计的问题
请问一下各位大虾
我想做一个浏览网站的时间统计
不能用GLOBAL.ASA的
因为网站在子文件夹里
请教一下应该怎么写? 我的网站有不少的是在新窗口打开的页面 我想做的是统计每个用户在网站上逗留的时间
当用户把网站的所有页面关闭时把时间写进数据库
请问应该怎么写? 能举个例吗?~`````` 急`````````````````````````````````
搜索更多相关主题的帖子: 统计 时间 
2007-03-02 09:31
cdwyj
Rank: 1
等 级:新手上路
威 望:1
帖 子:127
专家分:0
注 册:2007-2-21
收藏
得分:0 
给个不成熟意见……

每进行一个关闭网页操作的时候都写入最后的操作时间……
最后关闭的当然就是最后时间了……

缺点是浪费系统资源…… 频繁写数据。

[此贴子已经被作者于2007-3-2 15:35:54编辑过]


2007-03-02 15:34
3201
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-4-12
收藏
得分:0 
这个不太可取吧  感觉很麻烦啊```

努力中的菜鸟,请多支持············ 蠢问题多,请多见谅···········o_0
2007-03-05 16:13
cdwyj
Rank: 1
等 级:新手上路
威 望:1
帖 子:127
专家分:0
注 册:2007-2-21
收藏
得分:0 

“客户机端Cookie”技术
  使用客户机端Cookie也很容易。完成这一工作的代码可以放在一个ASP #include 文件中,然后将它插入到站点中用户肯定会去访问的主页面中。当然,如果愿意的话可以将其插入所有的页面。只要在用户访问的过程中它工作正常,就能给出正确的结果。

  设置了路径和日志文件名之后,代码定义一个子程序,将一个值附加到日志文件的,就象前面的“ASP Sessions”的例子一样。如果你愿意的话,可以取代我们使用的代码来更新一个数据库表而不是一个日志文件。

< %

'measure visit length with cookie

'set path and name of log file to be created

'edit to suit your own machine directory layout

'remember to give the directory Write or Full

'Control permission for the IUSR_machine account

strFileName = "C:Tempvisit_lengths.txt"

Sub UpdateLogFile(intVisitLength)

On Error Resume Next

If intVisitLength > 0 Then

   'got a valid time so enter it into a log file

   strInfo = "Session ending at " & Now() _

     & " lasted for " & CStr(intVisitLength) & " minute(s)."

   'add user name to the log entry string here if required

   'strInfo = strInfo & " User name: " & strUserName

   Set objFileObject = Server.CreateObject("Scripting.FileSystemObject")

   'open text file to append data (the ForAppending constant = 8)

   Set objFile = objFileObject.OpenTextFile(strFileName, 8, True)

   objFile.WriteLine strInfo

   objFile.Close

   Set objFile = Nothing

   Set objFileObject = Nothing

End If

End Sub

读一个存在的Cookie
  现在我们可以进行实质性的工作了。代码的其余部分检查是否有一个现存的Cookie供这个用户使用,如果有的话就确认它包含有效的日期和时间(我们检查它必须是一个1990年之后的日期)。如果cookie是有效的,它随后检查自从这个用户装载最后一页(也就是他们执行这个代码的最后一次)是否已经过了30分钟以上。如果已经超过了30分钟,我们就把它算做一个新的访问,你可以根据你的站点和需求来修改这个值。

...

'get session start time from existing cookie if it exists

datStart = CDate(Request.Cookies("SiteVisits")("StartTime"))

If Year(datStart) > 1990 Then

'cookie already exists, so get values

datLast = CDate(Request.Cookies("SiteVisits")("LastTime"))

If (DateDiff("n", datLast, Now()) > 30) Then

   'more than 30 minutes since last visit so count as new visit

   'get length of last visit and update log file

   intMinutes = DateDiff("n", datStart, datLast)

   UpdateLogFile intMinutes

   ...

  这时,通过在页面的顶端执行UpdateLogFile子程序,我们已经存储了他们上一次访问的长度, 这是他们上次访问的分钟数。然后就可以把我们收集的两个值更新成当前的日期和时间,可以开始记录这次访问的长度了。

  要注意,30分钟过去之后才能看到表格中的任何条目。在试验时,你可以用一个较短的值来修改代码。

记录访问的时间长度
   ...

   'update values for cookie

   'use new start time and new 'last page load' time

   datStart = Now()

   datLast = Now()

Else

   ...

  如果自从最后一次执行这个代码的时间少于30分钟,我们把它算成是当前访问的一部分,因此我们只需要更新cookie中的值作为他们上次访问的时间:

   ...

   'less than 30 minutes since last visit so count as the same visit

   'update values for cookie - just change the 'last page load' time

   datLast = Now()

End If

Else

...

设置默认值
  这里的代码只是在我们没有从访问者那里得到一个有效的cookie时才会执行,因此我们所能做的就是使用一个当前日期和时间的新cookie来得到最后一次访问的开始和最后的数值:

...

'valid cookie does not exist so set values for a new one

datStart = Now()

datLast = Now()

End If

...

创建返回Cookie值
  现在,我们已经涉及到了cookie中现存值的所有可能的情况,并且我们把新的cookie值存储在datStart和datLast变量中。这样我们就可以创建发送回这个访问者的cookie了。注意,每次我们都要重新创建整个cookie,因为当试图修改其中一个值而更新cookie时,会破坏其它的所有现存值:

...

'create cookie to send back to client

'have to recreate whole cookie - can't just change some values

Response.Cookies("SiteVisits")("StartTime") = datStart

Response.Cookies("SiteVisits")("LastTime") = datLast

Response.Cookies("SiteVisits").path = "/" 'apply to entire site

'make it stay on the user's system for three months

Response.Cookies("SiteVisits").expires = DateAdd("m", 3, Now)

% >

  cookie技术的一个问题是当访问者重新回到你的站点时,你只能测量他上次访问的长度。为此,我们允许cookie在他们的机器上存在3个月,你可以修改这个时间值来适应你的需求。   


2007-03-05 22:29
快速回复:关于时间统计的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035250 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved