仓酷云
标题: ASP教程之ASP实例之计数器法式详解 [打印本页]
作者: 冷月葬花魂 时间: 2015-2-3 23:30
标题: ASP教程之ASP实例之计数器法式详解
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。法式|计数器|详解 Active Server Pager(静态办事器主页,简称ASP),经由过程读写办事器的文件,联合script言语(VBscript或Jscript)和html码可以便利地完成页面计数器功效。现盛行的ASP教材和收集上的ASP教程都谈到过ASP计数器的设计成绩,然而都过于复杂,好比没有提到如何完成计数器剧本和主页面的分别和图像计数器的完成等。上面就作者为单元制造NT web站点的经历,举实例按部就班谈谈关于ASP计数器的设计,但愿能给ASP的初学者和对ASP WEB编程有乐趣的网友一些启示。
(一)复杂的计数器
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,把增添后的数值写回到文件。
写入数据到一个办事器计数文件的ASP语句和申明以下:
CounFile=Server.MapPath("用来寄存计数器值的文件名")
Server办事器会见办法MapPath(path)是将寄存计数器值的文件地点的途径 转换成物理途径
SET FileObject=Server.CreateObject("Scripting.FileSystemObject")
利用办法CreateObject界说对象FileSystemObject
SET OutStream=Server.CreateTextFile(FileObject,True,False)
利用对象FileSystemObject供应办法CreateTextFile发生文本文件,个中参 数"True"暗示掩盖本来的文件,"False"暗示文件为ASCII类型
OutStream.WriteLine "要写入的数据"
OutStream.WriteLine为往文件写入一行数据
从一个办事器文件读取数据的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。
复杂的ASP计数器simplecounter.asp代码及正文:
$#@60;%
CountFile=Server.MapPath("simplecounter.txt")
文件aspconter.txt是用来贮存数字的文本文件,初始内容通常为0
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
办法Application.lock制止其余用户更改计数器的值
counter= counter + 1
计数器的值增添1
Out.WriteLine(counter)
把新的计数器值写入文件
Application.unlock
利用办法Application.unlock后,答应其余用户更改计数器的值
Response.Write("您是第")
Response.Write("$#@60;font color=red$#@62;")
Response.Write(counter)
把计数器的值传送到阅读器,以红(red)色显示给用户
Response.Write("$#@60;/font$#@62;")
Response.Write("位会见者")
Out.Close
封闭文件
%$#@62;
(二)与页面分别的计数器
实践使用中,主页面与计数器法式是分别的,既只需在需求计数的页面中到场一句援用代码就能够完成页面计数。咱们在网上常常请求利用的收费计数器就是如许,不外它们通常为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&")"
为了在页面准确显示计数器的值,挪用VBScript函数Document.write
Out.Close
%$#@62;
在要计数的页面到场以下的代码:
$#@60;p$#@62;
您是第
$#@60;font color=red$#@62;
$#@60;script language="JavaScript" src="http://202.101.209.75/asptemp/counter/txtcounter.asp"$#@62;
//援用时注重ASP计数器地点的办事器及目次途径。
$#@60;/script$#@62;
$#@60;/font$#@62;
位来客
$#@60;/p$#@62;
(三)与页面分别的图像计数器
人们的寻求是永无尽头的,或许你需求一个更有特性的图形数字计数器,而不是复杂的文本数字计数器。没成绩,如今咱们就来看看用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代码:
$#@60;% @language="VBScript"%$#@62;
$#@60;%
dim images(20)
界说一数组,用来寄存显示每位数字图像的语句
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),并把它存在数组中
详细利用时请注重图像的实践办事器及目次途径
response.write"document.write("&images(i)&");"
挪用函数Document.write输入显示数字图像的html代码
next
Out.Close
%$#@62;
在要计数的页面到场以下的代码:
$#@60;p$#@62;
您是第
$#@60;script language="JavaScript" src="http://202.101.209.75/asptemp/counter/imgcounter.asp"$#@62;
//援用时注重ASP计数器地点的办事器及目次途径。
$#@60;/script$#@62;
位来客
$#@60;/p$#@62;
附注:以上asp计数器均在Windows NT Server 4.0(中文) / IIS3.0 下测试经由过程。以下任何一种情况都可履行ASP:
1、Windows NT Server 4.0 / IIS3.0以上
2、Windows NT WorkStation 4.0 / Microsoft Peer Web Service3.0以上
3、Windows 95/98 / Microsoft Personal Web Server 1.0a以上
我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。
作者: 乐观 时间: 2015-2-4 00:04
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
作者: 若天明 时间: 2015-2-9 07:44
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
作者: 飘飘悠悠 时间: 2015-2-11 08:43
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
作者: 山那边是海 时间: 2015-2-26 06:44
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
作者: 蒙在股里 时间: 2015-3-8 12:32
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
作者: 第二个灵魂 时间: 2015-3-10 12:25
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
作者: 谁可相欹 时间: 2015-3-17 06:12
不能只是将它停留在纸上谈兵的程度上。
作者: 只想知道 时间: 2015-3-23 23:15
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 分手快乐 时间: 2015-4-3 21:42
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
作者: admin 时间: 2015-4-5 00:21
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
作者: 金色的骷髅 时间: 2015-4-27 20:27
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
作者: 小女巫 时间: 2015-5-4 02:37
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
作者: 老尸 时间: 2015-5-4 05:14
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
作者: 小妖女 时间: 2015-6-9 03:05
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
作者: 再见西城 时间: 2015-6-17 14:29
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
作者: 海妖 时间: 2015-6-29 04:48
不能只是将它停留在纸上谈兵的程度上。
作者: 莫相离 时间: 2015-7-1 02:50
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
作者: 变相怪杰 时间: 2015-7-1 03:28
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
欢迎光临 仓酷云 (http://ckuyun.com/) |
Powered by Discuz! X3.2 |