編寫(xiě)“公平”的ASP圖形計(jì)數(shù)器
發(fā)表時(shí)間:2024-06-17 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]“技術(shù)天地”中的《編寫(xiě)ASP圖形計(jì)數(shù)器》一文,詳細(xì)的說(shuō)明了如何利用流行的ASP來(lái)編寫(xiě)計(jì)數(shù)器。但是,美中不足的是,如果某個(gè)用戶(hù)反復(fù)點(diǎn)擊“刷新”按鈕,那么計(jì)數(shù)器還是要不斷的增加的,這對(duì)網(wǎng)站點(diǎn)擊率評(píng)比來(lái)說(shuō)是不公平的,也失去了計(jì)數(shù)器做為正常統(tǒng)計(jì)功能的作用。如何在技術(shù)上避免這種情況的發(fā)生呢? 我認(rèn)為要防止上...
“技術(shù)天地”中的《編寫(xiě)ASP圖形計(jì)數(shù)器》一文,詳細(xì)的說(shuō)明了如何利用流行的ASP來(lái)編寫(xiě)計(jì)數(shù)器。但是,美中不足的是,如果某個(gè)用戶(hù)反復(fù)點(diǎn)擊“刷新”按鈕,那么計(jì)數(shù)器還是要不斷的增加的,這對(duì)網(wǎng)站點(diǎn)擊率評(píng)比來(lái)說(shuō)是不公平的,也失去了計(jì)數(shù)器做為正常統(tǒng)計(jì)功能的作用。如何在技術(shù)上避免這種情況的發(fā)生呢?
我認(rèn)為要防止上網(wǎng)用戶(hù)連續(xù)按下“刷新”計(jì)數(shù)器也連續(xù)增加的問(wèn)題,最好的辦法就是利用ASP的Session對(duì)象,我們可以借助Session對(duì)象首先判斷該用戶(hù)是否為新連接者,如果是,那么
IsEmpty(Session("hasbeenConnected"))=True,也就是說(shuō),Session("hasbeenConnected")是空的。那么,運(yùn)行程序,使計(jì)數(shù)器加1,然后將該用戶(hù)的Session("hasbeenConnected")設(shè)置為T(mén)rue,也就是說(shuō),這個(gè)用戶(hù)已經(jīng)不是新的連接者,無(wú)論他怎么連續(xù)按下“刷新”按鈕,計(jì)數(shù)器也不會(huì)再增加。
結(jié)合《編寫(xiě)ASP圖形計(jì)數(shù)器》一文,最后的站點(diǎn)計(jì)數(shù)器的源程序應(yīng)該是:
<html>
<head>
……
</head>
<body>
<%dim tms,counter,countlen
dim images(20)
h1="<p><font color='#8000ff'>這是一個(gè)ASP計(jì)數(shù)器</font></p>"
If IsEmpty(Session("hasbeenConnected")) then
set rs=server.createobject("adodb.recordset")
application.lock
rs.open "update aspcount set countss=countss+1","dsn=userdbs",3,3
application.unlock
Session("hasbeenConnected")=True
End If
set rs=server.createobject("adodb.recordset")
rs.open "select * from aspcount","dsn=userdbs",3,3
rs.movefirst
counter=rs(0)
countlen=len(counter)
tms="<h1><font color='#8000ff'>您是第</font>"&&counter&&"<font color='#8000ff'>位訪問(wèn)者!</font></h1>"
response.write(tms)
for i=1 to countlen
images(i)="<img src=" && mid(counter,i,1) && ".gif></img>"
next
response.write images(1)&&images(2)&&images(3)&&images(4)&&images(5)&&images(6)&&images(7)
rs.Close
%>
</body>
</html>