纯客户端的JS实现不了记数器功能, 必须与服务器端联合起来才行, 关于记数器的代码在ASP版的FAQ有N多.

解决方案 »

  1.   

    js实现的计数器只能是不住的累加,不管你是刷新页面还是打开叶面
    我觉得最好还是用asp吧
    try this:<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> 
      Sub Application_OnStart 
       
      ' 当服务器开启时,设置用户计数器为0 
      Application("ActiveUsers") = 0 
      End Sub 
      Sub Session_OnStart 
       
        ' 设置Session对象的有效时间为20分钟(也可以更长,但是越长对服务器的资源' 占用越多,因为服务器不接受少于20分钟的有效时间,所以设置少于20分钟的'有效时间是无效的) 
      Session.Timeout = 20 
       
        ' 当开始一个Session时用户计数器加1 
      Application.Lock 
      Application("ActiveUsers") = Application("ActiveUsers") + 1 
      Application.UnLock 
      End Sub 
      Sub Session_OnEnd 
       
        ' 当结束一个Session时用户计数器减1 
      Application.Lock 
      Application("ActiveUsers") = Application("ActiveUsers") - 1 
      Application.UnLock 
      End Sub 
      </SCRIPT> 
       
        这样,网站的在线人数就被统计出来了,我们可以利用如下一个ASP页面(js.asp)将它显示出来: jsh.asp: 
      <%@ Language=VBScript %> 
      <HTML> 
      <HEAD> 
      <TITLE>统计在线人数</TITLE> 
      </HEAD> 
      <BODY> 
      <B><FONT COLOR="#CC0000">当前在线<%= Application("ActiveUsers") %>人</FONT></B> 
      </BODY> 
      </HTML> 
       
      

  2.   

    1.建立计数器数据库结构  字段:acounts   数据类型:长整型  宽度:20  2.连接odbc数据库源  在“控制面板”中选择“odbc data source…”,在对话框中选择“system dsn”,单击“add”按钮选择数据库驱动程序“microsoft access driver(*.mdb) 4.0”,在新弹出的对话框中data source name栏里输入“userdbs”,单击“select”按钮选择aspcount.mdb数据库即可。  3.asp对数据库对象操作的语句  1)从数据库字段中读取内容:  set rs=server.createobject("adodb.recordset")  rs.open "select * from aspcount","dsn=userdbs",3,3  rs.movefirst  counter=rs(0)   2)向数据库字段中写入内容:  rs.open "update aspcount set countss=countss+1","dsn=userdbs",3,3  4.程序清单  〈html〉  〈head〉  ……  〈/head〉  〈body〉  〈%dim tms,counter,countlen  dim images(20)  h1="〈p〉〈font color='#8000ff'〉这是一个asp计数器〈/font〉〈/p〉"  set rs=server.createobject("adodb.recordset")  application.lock  rs.open "update aspcount set countss=countss+1","dsn=userdbs",3,3  application.unlock  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'〉位访问者!〈/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〉