仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1256|回复: 18
打印 上一主题 下一主题

[学习教程] ASP教程之ASP实例之计数器法式详解

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:30:16 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,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整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-10 04:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表