分享ASP网页开发过程中的小技巧

作者:控件中国网   出处:互联网   2015-07-13 11:10:15   阅读:2

Aspose.Total For .NET——正版、购买、下载、价格、销售、代理、授权、技术支持尽在控件中国网

ASP是Microsoft公司推出的一种用以取代通用网关接口的技术,英文全称Active Server Pages。它是一个Web服务器端的运行环境。ASP本身包含了VBScript和javascript引擎,使得脚本可以直接嵌入HTML中。现将们在ASP运用过程中的几个小技巧与大家分享。


 

一、新闻栏


 

大多数网页上有新闻栏,用以显示最近新闻的主题,点击此主题即可查看详细报道。倘若每天都一条条写在网页上,再依次建立链接太过麻烦。如何让其可以根据文件自动更新呢?


 

1.预备工作


 

1)建一个文件夹,起名为 news ,假设存于D:/ASP/目录下;


 

2)把每条新闻的详细内容写入文件,且此文件的命名形式为:x (newstime).htm。其中x为此条新闻的主题,newstime为此条新闻发布的时间(按年-月-日顺序写)。为什么要这样写呢?看了下面的算法思想和源程序就知道了。


 

2.算法思想


 

对于news文件夹中的文件,依据它们文件名中新闻发布的时间(即括号内的内容),从大到小排序。这样一来,最新的新闻排在最上面,只要在网页相应位置显示 news文件夹中最上面的若干个文件名,因为文件名的命名方式如1中所述,就可以在新闻栏中显示最新新闻了。


 

3.源程序段(用VBScript编写的)


 

以下为引用的内容:


 

 %   Dim fs, f, f1, fc, filenum  dim count  dim i,j,t1,t2  dim file(100)  dim mystr(100) '标志文件中日期的字符串  count=0  Set fs = CreateObject( Scripting.FileSystemObject )  Set f = fs.GetFolder( D:/ASP/news  )  Set fc = f.Files  for each f1 in fc  count=count+1 '计文件个数  file(count)=fs.getbasename(f1) '标记文件基名  mypos=InStr(1, file(count),  ( ) ')在文件基名中的位置  '文件基名中的日期字符串   mystr(count) = Mid(file(count), mypos + 1, Len(file(count)) - (mypos + 1))  next  for i=1 to count  for j=1 to count-i  if mystr(j) mystr(j+1) then  t1=file(j)  file(j)=file(j+1  file(j+1)=t1  t2=mystr(j)  mystr(j)=mystr(j+1)  mystr(j+1)=t2  end if  next  next  j=1   if count 10 then '新闻栏中共显示10条新闻  temcount=count  else  temcount=10  end if  do while j =temcount%   a href= file:///D:/ASP/news/ %=file(j)% .htm  target= new_window %=file(j)%   /a   %  j=j+1  loop  %  


 

4.新闻栏内容更新


 

只要养成良好的书写习惯,使得新闻的名称遵照1的要求,再把写好的文件存入news文件夹,新闻栏就会自动显示出最新的10条新闻了。


 

二、公告栏


 

除了新闻栏之外,较常用的就是公告栏了,公告栏主要用来显示一些重要的通知。当然这些通知是要经常变化的。让用户每次更改公告内容时都到源程序里去修改吗?当然不行,们必须提供一个维护的界面给用户,使得用户只要输入通知,网页上的公告栏里自然就会显示通知内容了。


 

1.解决这一问题的关键在于灵活应用FileSystemObject对象和TextStream对象。


 

在实际应用中,你无需自行建立TextStream对象,因为只要利用FileSystemObject对象打开了文件,系统便自动建立TextStream对象。也就是说,一旦调用OpenTextFile或CreateTextFile方法,便会传回TextStream对象。


 

2.所需相关文件有三个


 

更新.asp、公告.asp、维护文本.txt,把它们存入d:/ASP/maintain目录下。


 

3.三个文件的主要功能和源程序段:


 

1)更新.asp


 

主要功能是让用户输入欲显示的公告,检验输入内容是否为空,若不为空,则提交给 公告.asp 程序处理。


 

以下为引用的内容:


 

 html   head   meta http-equiv= Content-Type  content= text/html; charset=gb2312   meta name= GENERATOR  content= Microsoft FrontPage 4.0   meta name= ProgId  content= FrontPage.Editor.Document   title 更新公告栏内容 /title   /head   body   script language=vbscript  function datacheck()  dim msg,errflag  errflag=true  if len(trim(maintain.t1.value))=0 then   focusto(0)  errflag=false  msg= 请输入需提交的公告内容  end if  if (errflag=false) then  msgbox msg,64, oh no!    exit function  end if  datacheck=errflag  maintain.submit  end function  sub focusto(x)  document.maintain.elements(x).focus()  end sub   /script  ① form method= POST  action= 公告.asp  name= maintain   p input type= text  name= t1  size= 84 input type= reset  value= 重写  name= B2   input type= button  value= 提交  name= B1   /span> datacheck() /p   hr color=#FF99FF size=1     /form   /body   /html  


 

语句①中的action= 公告.asp 部分,指出了在form提交后要启动的程序为 公告.asp 。


 

2)公告.asp


 

通过FileSystemObject对象和TextScream对象对 维护文本.txt 文件进行读写操作,使得此文件最上面5行的内容为要在公告栏里显示的公告。


 

以下为引用的内容:


 

 %  dim str  str=request.form(t1)  dim s(5)  const forreading=1,forwriting=2  dim fso,myfile  set fso=server.createobject( scripting.FileSystemObject )  set myfile=fso.opentextfile( 维护文本.txt ,forreading)'以Reading模式打开文件  for i=1 to 5 '公告栏共显示5条公告  s(i)=myfile.readline'读取文件内容  next  myfile.close  set myfile=fso.opentextfile( 维护文本.txt ,forwriting,true) '以writing模式打开文件  myfile.writeline str  for i=1 to 4  myfile.writeline s(i) '将数据写回文件  next  myfile.close  %  


 

3)维护文本.txt


 

此文件开始为空,从 更新.asp 显示的界面输入公告后,此文件内容被自动写入。


 

4.在主页文件(通常是default.asp)欲显示公告位置的代码段中加入如下代码,即可显示出更新后的公告。


 

以下为引用的内容:


 

 marquee scrollamount= 2  scrolldelay= 50  direction= up  width= 223  height= 133  id= a   /span> a.stop()  onmouseout= a.start() '公告栏上下滚动   %   Dim s(20)   Dim fso, MyFile   Set fso = CreateObject( Scripting.FileSystemObject )   Set MyFile = fso.OpenTextFile( D:/ASP/maintain/维护文本.txt ,1,true)   for i=1 to 5   ReadLineTextFile=MyFile.ReadLine   s(i)=ReadLineTextFile   response.write      s(i)   response.write  br    next   %   /marquee  


 

上述两个小技巧举一反三,可以解决很多此类问题。网页设计爱好者们不妨一试。

Aspose.Total For .NET——正版、购买、下载、价格、销售、代理、授权、技术支持尽在控件中国网

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat