加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP网页开发过程中的几个小窍门

发布时间:2023-08-31 14:29:46 所属栏目:Asp教程 来源:
导读:ASP是Microsoft公司推出的一种用以取代通用网关接口的技术,英文全称Active Server Pages。它是一个Web服务器端的运行环境。ASP本身包含了VBScript和javascript引擎,使得脚本可以直接嵌入HTML中。现将我们在ASP运用
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" onclick="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" onmouseover="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>
 
上述两个小技巧举一反三,可以解决很多此类问题。网页设计爱好者们不妨一试。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章