最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

被動(dòng)式統(tǒng)計(jì)網(wǎng)站在線人數(shù)

 更新時(shí)間:2006年12月23日 00:00:00   作者:  

在學(xué)校里不能上網(wǎng)時(shí),沒(méi)事做就改了下blog程序,加上了個(gè)blog在線人數(shù)統(tǒng)計(jì)。在此之前也看了幾種統(tǒng)計(jì)在線人數(shù)的代碼,感覺(jué)都不太符合自己的要求,就結(jié)合blog程序自己寫了一個(gè),應(yīng)用到我的blog上。

在Fdream的blog里提到了一些關(guān)于ASP統(tǒng)計(jì)在線人數(shù)的方法,具體可以看這里

為了兼顧準(zhǔn)確率與效率,我采用了被動(dòng)的方式來(lái)統(tǒng)計(jì)在線人,即當(dāng)有新訪客時(shí)才更新在線人數(shù)。不知道網(wǎng)上有沒(méi)有已經(jīng)有人使用了這種方法,不過(guò)我現(xiàn)在用的完全是自己想的^_^。

在L-Blog中采用Session來(lái)判斷訪客是否為新訪客。Session的超時(shí)時(shí)間一般為20分鐘,剛好可以用來(lái)統(tǒng)計(jì)在線人數(shù),即20分鐘內(nèi)的活動(dòng)訪客認(rèn)為是在線的。

在commond.asp有如下一段代碼用來(lái)記錄訪問(wèn)記錄:

復(fù)制代碼 代碼如下:

' Guest_IP為訪客的IP
IF Session("GuestIP")<>Guest_IP Then
    Dim Guest_Agent,Guest_Refer
    ' Guest_Agent和Guest_Refer訪問(wèn)記錄要用到
    Guest_Agent=Trim(Request.ServerVariables("HTTP_USER_AGENT"))
    Guest_Refer=Trim(Request.ServerVariables("HTTP_REFERER"))
    ' 添加一個(gè)訪問(wèn)記錄
    Conn.ExeCute("INSERT INTO blog_Counter(coun_IP,coun_Agent,coun_Refer) VALUES
    ('"&Guest_IP&"','"&Guest_Agent&"','"&Guest_Refer&"')")
    ' 訪問(wèn)次數(shù)加1
    Conn.ExeCute("UPDATE blog_Info SET blog_VisitNums=blog_VisitNums 1")
    SQLQueryNums=SQLQueryNums 2
    ' 用Session保存訪客IP
    Session("GuestIP")=Guest_IP
End IF

為了實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì),我在數(shù)據(jù)庫(kù)里做了一些改動(dòng):

1. 在表blog_Info添加了1個(gè)字段blog_OnlineNums(整型),用來(lái)保存網(wǎng)站當(dāng)前在線人數(shù)

2. 添加了表blog_Onine,字段設(shè)置為:ol_ID(自動(dòng)編號(hào)),ol_IP(字符,20),ol_Time(日期/時(shí)間,默認(rèn)值Now)。

修改后的站點(diǎn)統(tǒng)計(jì)代碼如下:
復(fù)制代碼 代碼如下:

'站點(diǎn)統(tǒng)計(jì)代碼
IF Session("GuestIP")<>Guest_IP Then
    ' 原來(lái)的站點(diǎn)訪問(wèn)計(jì)數(shù)器
    Conn.ExeCute("INSERT INTO blog_Counter(coun_IP,coun_Agent,coun_Refer)
    VALUES ('"&Guest_IP&"','"&Guest_Agent&"','"&Guest_Refer&"')")
    Conn.ExeCute("UPDATE blog_Info SET blog_VisitNums=blog_VisitNums+1")
    SQLQueryNums=SQLQueryNums+2
    Session("GuestIP")=Guest_IP
    '在線人數(shù)統(tǒng)計(jì)
    ' 判斷在在線列表中是否在在已經(jīng)超時(shí)的訪客
    IF Conn.ExeCute("SELECT COUNT(ol_ID) FROM blog_Online
    WHERE DateDiff('n',ol_Time,Now())>20")(0)>0 Then
        ' 如果有則覆蓋一個(gè)已超時(shí)訪客的記錄
        Conn.ExeCute("UPDATE blog_Online SET ol_IP='"&Guest_IP&"',
        ol_Time=Now() WHERE ol_ID IN (SELECT TOP 1 ol_ID
        FROM blog_Online WHERE DateDiff('n',ol_Time,Now())>20)")
    Else
        ' 如果沒(méi)有則添加一條在線訪客記錄
        Conn.ExeCute("INSERT INTO blog_Online (ol_IP)
        VALUES ('"&Guest_IP&"')")
    End IF
    ' 統(tǒng)計(jì)blog在線人數(shù)
    blog_OnlineNums=Conn.ExeCute("SELECT DISTINCT COUNT(ol_ID)
    FROM blog_Online WHERE DateDiff('n',ol_Time,Now())<20")(0)
    ' 更新blog信息中的在線人數(shù)
    Conn.ExeCute("UPDATE blog_Info SET blog_OnlineNums="&blog_OnlineNums&"")
    SQLQueryNums=SQLQueryNums+3
End IF

這樣,在blog中需要顯示在線人數(shù)的地方引用變量blog_OnlineNums就行了。

并且因?yàn)槭潜粍?dòng)式統(tǒng)計(jì),對(duì)blog頁(yè)面執(zhí)行時(shí)間的影響幾乎可以忽略不計(jì),另外,這個(gè)方法統(tǒng)計(jì)的blog在線人數(shù)也有一定的準(zhǔn)確性,可以滿足一般的需求了。

相關(guān)文章

最新評(píng)論

浑源县| 资溪县| 永丰县| 迭部县| 华池县| 博野县| 聂拉木县| 虎林市| 伊金霍洛旗| 南汇区| 仙游县| 宣化县| 扬中市| 丹凤县| 北流市| 临安市| 山东省| 平泉县| 绥宁县| 长治县| 富裕县| 荔浦县| 昔阳县| 秭归县| 游戏| 安福县| 寻乌县| 青铜峡市| 平远县| 临夏市| 称多县| 桑日县| 武邑县| 福安市| 临西县| 宁海县| 垣曲县| 崇信县| 乡宁县| 景泰县| 蒙山县|