日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

用ASP統計用戶在網站的停留時間(1)

用ASP統計用戶在網站的停留時間(1)

更新時間:2022-05-02 文章作者:未知 信息來源:網絡 閱讀次數:

雖然通常使用的點擊注冊技術可以計算出你的Web站點得到多少點擊,但是,如果能夠知道訪問者在站點上停留了多長時間就更好了。如果有上千人點擊并打開了你的主頁,但他們卻在漂亮的“歡迎”圖形完全下載之前就已經跑到別的站點
去了,這樣,你所花在建設和維護站點上的投資就沒有得到很好的回報。

  有兩種很好的方法用來記錄用戶在你的站點上花費了多少時間。第一個是使用基于ASP服務器的sessions,第二是通過保持客戶機端cookies。要記住,使用sessions將給服務器的處理工作增加負荷,但是它們確實提供了最簡潔的方法。還有一點要注意,那就是如果用戶端的瀏覽器不能支持cookie功能,那么這兩種方法都不能工作。

  

ASP Session 技術
  使用ASP Session 是要求你把這個session 開始的當前時間保存成那個用戶的session 級別變量,這將要用到你的站點或虛擬路徑下的global.asa 文件中的Session_onStart 事件句柄。然后,在Session_onEnd 事件句柄中,你就可以計算出session 持續的時間,并將這個結果寫到日志文件或數據庫中。在這里的例子中使用了日志文件:

< script language="VBScript" runat="server" >

Sub Session_onStart()

'save the time that the session started

Session("StartTime") = Now()

End Sub



Sub Session_onEnd()

'get the time that the user last loaded a page

'assumes the default session timeout of 20 minutes



On Error Resume Next



'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"

datStartTime = Session("StartTime")

datEndTime = DateAdd("n", -20 , Now())

intMinutes = DateDiff("n", datStartTime, datEndTime)

If intMinutes > 0 Then

   'got a valid time so add it to the log file

   strInfo = "Visit ending at " & datEndTime _

     & " lasted for " & intMinutes & " 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

End If

End Sub

< /script >

  你可以看到,當session 結束時,我們從當前時間中減去了session 的timeout的數值,如果考慮到用戶裝載最后一頁時所花費的時間,減去的值可以稍微小一點。這個數量由你去猜,因為用這個技術并不能測出實際值。

  注意,如果你在任何頁面中使用了ASP的 Session.Abandon 方法,就不能得到正確的結果。因為這種方法立即中斷session,這樣,從實際時間中減去session長度就會給出一個不正確的訪問時間(有時候甚至是負數)。更糟糕的是,在ASP 2.0版本中,這種方法還經常徹底不能啟動Session_OnEnd事件。

  在某些站點上使用一種“中止服務器操作”的鏈接來啟動Session.Abandon方法,但是根據經驗,很少有用戶會去點擊它。他們只是轉到另一個站點,讓session自行中斷。

  這是我們從日志文件中得到的一些記錄:

  Visit ending at 6/5/00 1:05:26 AM lasted for 2 minute (s).

  Visit ending at 6/5/00 1:06:14 AM lasted for 47 minute(s).

  Visit ending at 6/5/00 1:12:18 AM lasted for 22 minute(s).

  Visit ending at 6/5/00 1:29:54 AM lasted for 9 minute(s).

  如果用戶訪問的時間少于1分鐘(比如說,他們的session開始后過了1分鐘還沒能裝載另一頁),用我們的代碼就不顯示在列表中。從整個session長度中減去這個session的timeout ,就會得到0,在這一點我們的代碼就將其舍棄:

  If intMinutes > 0 Then ?

  當然你可以修改代碼以適應自己的需要。

  注意:要記住session結束后才開始寫日志文件的條目。你不能立刻看到它們。如果想試著更快地看到結果,可以在頁面上修改Session.Timeout 的屬性。

  

在數據庫中記錄結果
  要將計算的結果記錄數據庫中而不是日志文件中,可以創建一個適當的SQL INSERT聲明,執行它來更新一個你已經提供的數據庫表:

...

strSQL = "INSERT INTO YourTable (UserName, SessionEnd, " _

& "SessionLength) VALUES ('" & strUserName & " ', #" _

& datEndTime & "#, " & intMinutes & ")"

Set oConn = Server.CreateObject("ADODB.Connection")

oConn.open "DSN=yourdsn;UID=username;PWD=password;"

oConn.Execute strSQL

Set oConn = Nothing

...



溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 婷婷色基地 | 中文字幕乱码人成乱码在线视频 | 国产超级碰碰在线公开视频 | 久久久精品456亚洲影院 | 久久久久久免费精品视频 | 欧美日韩免费播放一区二区 | 欧美不卡精品中文字幕日韩 | 日本xxxx在线视频免费 | 看免费人成va视频全 | 国产精品亚洲一区二区三区久久 | 日本一区二区三区精品国产 | 五月天激情亚洲婷婷在线 | 久久精品中文 | 视频一区日韩 | 免费一级毛片无毒不卡 | 亚洲精品第一 | 久久久久久久蜜桃 | 99久久免费精品国产免费 | 天天综合欧美 | 国产精选在线视频拍拍拍 | 亚洲v天堂v手机在线观看 | 午夜成人影片 | 国产免费一区二区三区最新 | 国内精品久久久久久影院网站小说 | 曰韩一级毛片 | 免费超级碰碰视频网站在线观看 | 色婷婷综合激情视频免费看 | 天天干天天爽天天操 | 久久99国产亚洲高清观看首页 | 在线精品欧美日韩 | 免费看午夜高清性色生活片 | 人人狠人人透人人爱 | 五月天久久久 | 日本免费不卡一区二区 | 亚洲欧美日产综合在线看 | 在线亚洲欧洲国产综合444 | 久久国产精品久久久久久小说 | 久久久影院亚洲精品 | 国产啪精品 | 国产一级内谢a级高清毛片 国产一级片毛片 | 国产91网|