• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        用ASP統(tǒng)計用戶在網(wǎng)站的停留時間(2)

        用ASP統(tǒng)計用戶在網(wǎng)站的停留時間(2)

        更新時間:2022-04-28 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        然后你就可以用任何方式來使用這些數(shù)據(jù)了。你可以創(chuàng)建ASP頁面來讀取數(shù)據(jù)并將數(shù)據(jù)呈現(xiàn)給管理員,或者從數(shù)據(jù)庫中將其復(fù)制到一個電子工作表中,有時間的時候再進(jìn)行分析。

          但是要記住,使用ASP sessions會帶來一些問題。在ASP 2.0中,當(dāng)主應(yīng)用程序目錄下的嵌套目錄中有g(shù)lobal.asa 的副本時,有時sessions 會丟失。還有,如果你在URL、頁面文件名以及頁面之間的超級鏈接中使用字母的大小寫不同的話,象Navigator那樣的瀏覽器就把URL作為大小寫敏感來對待,因此不把特殊的ASP session cookie發(fā)送回來,這樣這種
        方法的使用也是不可靠的。

          

        “客戶機(jī)端Cookie”技術(shù)
          使用客戶機(jī)端Cookie也很容易。完成這一工作的代碼可以放在一個ASP #include 文件中,然后將它插入到站點(diǎn)中用戶肯定會去訪問的主頁面中。當(dāng)然,如果愿意的話可以將其插入所有的頁面。只要在用戶訪問的過程中它工作正常,就能給出正確的結(jié)果。

          設(shè)置了路徑和日志文件名之后,代碼定義一個子程序,將一個值附加到日志文件的,就象前面的“ASP Sessions”的例子一樣。如果你愿意的話,可以取代我們使用的代碼來更新一個數(shù)據(jù)庫表而不是一個日志文件。

        < %

        '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
          現(xiàn)在我們可以進(jìn)行實質(zhì)性的工作了。代碼的其余部分檢查是否有一個現(xiàn)存的Cookie供這個用戶使用,如果有的話就確認(rèn)它包含有效的日期和時間(我們檢查它必須是一個1990年之后的日期)。如果cookie是有效的,它隨后檢查自從這個用戶裝載最后一頁(也就是他們執(zhí)行這個代碼的最后一次)是否已經(jīng)過了30分鐘以上。如果已經(jīng)超過了30分鐘,我們就把它算做一個新的訪問,你可以根據(jù)你的站點(diǎn)和需求來修改這個值。

        ...

        '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

           ...

          這時,通過在頁面的頂端執(zhí)行UpdateLogFile子程序,我們已經(jīng)存儲了他們上一次訪問的長度, 這是他們上次訪問的分鐘數(shù)。然后就可以把我們收集的兩個值更新成當(dāng)前的日期和時間,可以開始記錄這次訪問的長度了。

          要注意,30分鐘過去之后才能看到表格中的任何條目。在試驗時,你可以用一個較短的值來修改代碼。



        記錄訪問的時間長度
           ...

           'update values for cookie

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

           datStart = Now()

           datLast = Now()

        Else

           ...

          如果自從最后一次執(zhí)行這個代碼的時間少于30分鐘,我們把它算成是當(dāng)前訪問的一部分,因此我們只需要更新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

        ...



        設(shè)置默認(rèn)值
          這里的代碼只是在我們沒有從訪問者那里得到一個有效的cookie時才會執(zhí)行,因此我們所能做的就是使用一個當(dāng)前日期和時間的新cookie來得到最后一次訪問的開始和最后的數(shù)值:

        ...

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

        datStart = Now()

        datLast = Now()

        End If

        ...



        創(chuàng)建返回Cookie值
          現(xiàn)在,我們已經(jīng)涉及到了cookie中現(xiàn)存值的所有可能的情況,并且我們把新的cookie值存儲在datStart和datLast變量中。這樣我們就可以創(chuàng)建發(fā)送回這個訪問者的cookie了。注意,每次我們都要重新創(chuàng)建整個cookie,因為當(dāng)試圖修改其中一個值而更新cookie時,會破壞其它的所有現(xiàn)存值:

        ...

        '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技術(shù)的一個問題是當(dāng)訪問者重新回到你的站點(diǎn)時,你只能測量他上次訪問的長度。為此,我們允許cookie在他們的機(jī)器上存在3個月,你可以修改這個時間值來適應(yīng)你的需求。



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

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 久久久久亚洲av无码尤物| 日韩亚洲国产二区| 亚洲AV人无码激艳猛片| 国产免费久久精品99久久| 亚洲男女内射在线播放| 一级做a爰性色毛片免费| 免费h成人黄漫画嘿咻破解版| 久久亚洲AV成人无码国产电影| 日本a级片免费看| 亚洲AV日韩AV一区二区三曲 | 亚洲人成精品久久久久| 三级黄色在线免费观看| 亚洲成AV人片在线观看无码 | 亚洲电影唐人社一区二区| 免费黄色福利视频| 精品日韩99亚洲的在线发布| 成人免费午夜在线观看| 亚洲国产成人AV在线播放 | 日韩精品视频免费网址| 黄色毛片视频免费| 亚洲综合另类小说色区| 午夜免费啪视频在线观看| 综合自拍亚洲综合图不卡区| 成人免费黄色网址| 亚洲精品无码中文久久字幕| 亚洲AV无码乱码在线观看性色扶| a高清免费毛片久久| 亚洲视频免费在线观看| 无码免费午夜福利片在线| 在线视频亚洲一区| 黑人大战亚洲人精品一区| 69视频在线观看高清免费| 亚洲天堂男人影院| 亚洲美女在线国产| 24小时日本韩国高清免费| 亚洲中文字幕无码av永久| 亚洲午夜精品久久久久久浪潮 | 免费在线观看亚洲| 亚洲AV无码一区二区二三区软件| 人成午夜免费视频在线观看| 国产亚洲综合视频|