ID:   密码:   验证码:  
我的知识库
服务器-WEB服务器
服务器-FTP服务器
服务器-安全防护
IDC业务相关
网络编程-ASP
网络编程-PHP
网络编程-.NET
网络编程-XML
数据库-Access
数据库-Mssql
数据库-Mysql
主机相关问题
域名相关问题
邮局相关问题
付款相关问题
相关文本合同
游戏技术-传奇私服架设
游戏技术-传奇脚本信息
游戏技术-传世私服
常用软件下载
首页 >> 我的知识库>>网络编程-ASP>> ASP实例:计数器程序详解  
ASP实例:计数器程序详解
[ 作者:  | 文章来源: 网页教学网 | 点击数: 487 | 更新时间: 2007-11-4 8:57:52 ]

Active Server Pager(动态服务器主页,简称ASP),通过读写服务器的文件,结合script语言(VBscript或Jscript)和html码可以方便地实现页面计数器功能。现流行的ASP教材和网络上的ASP教程都谈到过ASP计数器的设计问题,但是都过于简单,比如没有提到怎样实现计数器脚本和主页面的分离以及图象计数器的实现等。下面就作者为单位制作NT web南通服务器网

(一)简单的计数器 Spdns~com

ASP内含五个内置的"Active Server Components"(ActiveX服务器组件),即Database Access component(数据库访问组件)、File Access component(文件访问组件)、Ad Rotator component(广告轮播器组件)、Brower Capabilities component(浏览器信息组件)、Content Linking component(内容链接组件)。我们下面要设计的计数器,就是通过其中的File Access component(文件访问组件)来读写服务器文件来实现。算法思路是:在服务器端用一个文本(ASCII)文件存放计数数值,每当页面被访问时就从文件中读出数值,显示给用户,并且使数值加1,把增加后的数值写回到文件。 Spdns^com

写入数据到一个服务器计数文件的ASP语句和说明如下: Www~Spdns~com

CounFile=Server.MapPath("用来存放计数器值的文件名") 中国南通服务器网

Server服务器访问方法MapPath(path)是将存放计数器值的文件所在的路径转换成物理路径 中国.南通服务器网

SET FileObject=Server.CreateObject("Scripting.FileSystemObject")

Www~Spdns~com

使用方法CreateObject定义对象FileSystemObject 中国.南通服务器网

SET OutStream=Server.CreateTextFile(FileObject,True,False) [南通服务器网]

使用对象FileSystemObject提供方法CreateTextFile产生文本文件,其中参   数"True"表示覆盖原来的文件,"False"表示文件为ASCII类型 中国南通服务器网

OutStream.WriteLine "要写入的数据"

南通服务器网

OutStream.WriteLine为往文件写入一行数据

Www.Spdns.com

从一个服务器文件读取数据的ASP语法如下:

南通服务器网

CounFile=Server.MapPath("用来存放计数器值的文件名") [南通服务器网]

SET FileObject=Server.CreateObject("Scripting.FileSystemObject") 中.国.南通服务器网

SET InStream=Server.OpenTextFile(FileObject,1,false,false)

南通服务器网

使用对象FileSystemObject提供方法OpenTextFile产生文本文?其中参数"True"表示覆盖原来的文件,"False"表示文件为ASCII类型"要读取的数据"=InStream.ReadLine,其中InStream.ReadLine为从文件中读取的一行数据。 中国南通服务器网

下面是一个用ASP实现页面计数器功能的计数器例子(simplecounter.asp),我在代码中详细注释了语句。你可以把以下代码粘贴到你需要计数的页面代码中。当然,你的服务器必须支持ASP,且你已经在主页所在的目录下创建了一个内容为0的文本文件simplecounter.txt。

中国南通服务器网,为中文网南通服务器网

读取计数器文件中的值

南通服务器网

Out.Close 南通服务器网

关闭文件 南通服务器网

以下为引用的内容:
SET FileObject=Server.CreateObject("Scripting.FileSystemObject")
Set Out=FileObject.CreateTextFile(CountFile,TRUE,FALSE)
Application.lock

中.国.南通服务器网

方法Application.lock禁止别的用户更改计数器的值 Spdns

counter= counter + 1

中国.南通服务器网

计数器的值增加1 中国南通服务器网

Out.WriteLine(counter) 中国南通服务器网

把新的计数器值写入文件 Spdns@com

Application.unlock Spdns

使用方法Application.unlock后,允许别的用户更改计数器的值 Spdns_com

以下为引用的内容:
Response.Write("您是第")
Response.Write("$#@60;font color=red$#@62;")
Response.Write(counter)

中国.南通服务器网

把计数器的值传送到浏览器,以红(red)色显示给用户

中国南通服务器网,为中文网南通服务器网

实际应用中,主页面与计数器程序是分离的,既只要在需要计数的页面中加入一句引用代码就可以实现页面计数。我们在网上经常申请使用的免费计数器就是这样,不过它们一般是CGI做的。这里,我们只要稍微修改一下前面我们用ASP做的简单计数器,然后在页面加入一句JavaScript语句引用它,就实现了与页面分离的计数器功能。这样,无论是作为主页面的计数器还是为某个特定页面的计数,都很方便了。显然,你需要简单更改一下存放计数器值的文件名和计数器asp源代码文件名就可以实现多个计数器。 南通服务器网

与页面分离的计数器txtcounter.asp代码:

南通服务器网

以下为引用的内容:
$#@60;%
CountFile=Server.MapPath("txtcounter.txt")
Set FileObject=Server.CreateObject("Scripting.FileSystemObject")
Set Out=FileObject.OpenTextFile(CountFile,1,FALSE,FALSE)
counter=Out.ReadLine
Out.Close
SET FileObject=Server.CreateObject("Scripting.FileSystemObject")
Set Out=FileObject.CreateTextFile(CountFile,TRUE,FALSE)
Application.lock
counter= counter + 1
Out.WriteLine(counter)
Application.unlock
Response.Write"document.write("&counter&")"
Www@Spdns@com

为了在页面正确显示计数器的值,调用VBScript函数Document.write

Spdns_com

Out.Close 南通服务器网

%$#@62; [南通服务器网]

在要计数的页面加入如下的代码: 南通服务器网

$#@60;p$#@62; Www_Spdns_com

您是第

Spdns^com

$#@60;font color=red$#@62; 南通服务器网

$#@60;script language="JavaScript" src="http://202.101.209.75/asptemp/counter/txtcounter.asp"$#@62; Www_Spdns_com

//引用时注意ASP计数器所在的服务器及目录路径。

中国南通服务器网

$#@60;/script$#@62;

中国.南通服务器网

$#@60;/font$#@62;

中国.南通服务器网

位来客

中国南通服务器网

$#@60;/p$#@62;

Www.Spdns.com

(三)与页面分离的图象计数器

Spdns@com

人们的追求是永无止境的,也许你需要一个更有个性的图形数字计数器,而不是简单的文本数字计数器。没问题,现在我们就来看看用ASP是怎样来实现图形计数器功能的。要实现图形计数器,关键点在于如何实现把计数器文件中的数据值转变为对应的图象表示。因为十进制数有0,1,2,3,4,5,6,7,8,9共十个不同的数数字,我们需要有十个对应的图象,且图象的文件名字要与显示的数字对应起来,比如0对应的数字图象的文件名字就是0.gif,1对应的就是1.gif,...(图象自己可以用Photoshop等工具制作,或者从网络上下载)。这里我们要用到VBScript函数Len(string | varname)、Mid(string,start[,length])。由Len(counter)可得到计数器值的位数,由Mid(counter,i,1)可以得到计数器值的第i位上的数字,我们可利用这个值来调用相应的数字图象。用For循环语句,我们不难得出计数器值各个位上的数字并转化成对应的数字图象,这样,我们就能实现文本数值到图象数字的转变。下面就是一个用ASP编写的图象计数器实例,因为大部分代码前面都分析过,所以代码中只注释了部分语句。

南通服务器网

与页面分离的图象计数器imgcounter.asp代码:

Spdns@com

$#@60;% @language="VBScript"%$#@62;

中.国南通服务器网

$#@60;%

Www^Spdns^com

dim images(20) Spdns^com

定义一数组,用来存放显示每一位数字图象的语句

中.国.南通服务器网

以下为引用的内容:
CountFile=Server.MapPath("imgcounter.txt")
Set FileObject=Server.CreateObject("Scripting.FileSystemObject")
Set Out=FileObject.OpenTextFile(CountFile,1,FALSE,FALSE)
counter=Out.ReadLine
Out.Close
SET FileObject=Server.CreateObject("Scripting.FileSystemObject")
Set Out=FileObject.CreateTextFile(CountFile,TRUE,FALSE)
Application.lock
counter= counter + 1
Out.WriteLine(counter)
Application.unlock
countlen=len(counter)
中.国南通服务器网

得到计数器值的位数 中国南通服务器网

以下为引用的内容:
for i=1 to countlen
images(i)="$#@60;img src="&"http://202.101.209.75/asptemp/counter/images/"&"/" & mid(counter,i,1) & ".gif$#@62;$#@60;/img$#@62;"
南通服务器网

由循环语句得到各个位上数值对应图象的显示代码(html),并把它存在数组中,具体使用时请注意图象的实际服务器及目录路径 Spdns^com

response.write"document.write("&images(i)&");" 中国南通服务器网

调用函数Document.write输出显示数字图象的html代码 南通服务器网

next
Out.Close
%$#@62; 中国.南通服务器网

在要计数的页面加入如下的代码:

中国南通服务器网

$#@60;p$#@62;

南通服务器网

您是第 Www^Spdns^com

$#@60;script language="JavaScript" src="http://202.101.209.75/asptemp/counter/imgcounter.asp"$#@62; Spdns

//引用时注意ASP计数器所在的服务器及目录路径。

Spdns.com

$#@60;/script$#@62;

Spdns^com

位来客

中.国南通服务器网

$#@60;/p$#@62;

中国南通服务器网

附注:以上asp计数器均在Windows NT Server 4.0(中文) / IIS3.0 下测试通过。以下任何一种环境都可执行ASP: 中.国.南通服务器网

一、Windows NT Server 4.0 / IIS3.0以上 中.国.南通服务器网

二、Windows NT WorkStation 4.0 / Microsoft Peer Web Service3.0以上

Www@Spdns@com

三、Windows 95/98 / Microsoft Personal Web Server 1.0a以上 南通服务器网

Tags:ASP 计数器 程序 详解
责任编辑:阿小



评论
收藏
推荐
打印
关闭
字体:+ -
纠错


Copyright © 1999-2007 诚信 合法 规范的南通服务器网 www.spdns.com 始建于1996
企业总机:400-618-5529(只收市话费) 未开通400地区:0513-83015999 / 84012988 / 84519829
上海亿流数码科技有限公司 地址:江苏省南通市如东电信局大楼3楼IDC运维部
《中华人民共和国增值电信业务经营许可证》沪B2-20060518号
信息产业部备案编号:苏ICP备05009350号
电子执照:沪企3102272090823