<%
'函数名 count
'作用 让1与变成001,如果是三位数的话
function count(cou)
cou=int(cou)
lon=3 '设置长度
for k=1 to (lon-len(cou))
z="0"
couz=couz&z
next
count=couz&cou
z=null
couz=null
cou=null
k=null
end function
%>
把view.asp给分出来了,好像没有我以前担心的那些问题,我也忘记了以前是什么问题,所以就先这样了,
read.asp 显示新闻,
show.asp 显示文章
down.asp 显示下载
关于显示下载的那个页还要改一下,因为,下载那里有好多要写,现在先这么多,到时候看一看baidu会收入多少,原来的我也放在那里,就是不明白为什么baidu.com会收入那么少呢,
现在在看一看了!
技术上没有什么新的地方!
read.asp 显示新闻,
show.asp 显示文章
down.asp 显示下载
关于显示下载的那个页还要改一下,因为,下载那里有好多要写,现在先这么多,到时候看一看baidu会收入多少,原来的我也放在那里,就是不明白为什么baidu.com会收入那么少呢,
现在在看一看了!
技术上没有什么新的地方!
实验目的:验证主动释放内存变量是否有价值.
实验原始代码:
<script language=vbscript runat=server>
Dim temp1,temp2
'temp1 = space(1024*1024*50) '50MB
for i = 0 to 5000000 ' 延迟
next
'temp1="" '开关变量
'temp2 = space(1024*1024*50) '50MB
for i = 0 to 5000000 ' 延迟
next
Response.write "<meta http-equiv='refresh' content='4;url=http://localhost/memory_test.ASP'>"
</script>
内存变化截图1:
截图解释:
CPU的波形变化是由页面自动刷新引起的,不必在意!我们要观察的只是内存线的变化.这是原始状态,内存线保持水平无变化.
好,下面实验正式开始:
第一步:
把原始代码中的
'temp1 = space(1024*1024*50) '50MB
前面的注释号 ' 去掉,改成
temp1 = space(1024*1024*50) '50MB
再观察内存变化一段时间
内存变化截图2:
结果:
内存开始出现方波.
第二步:
接着也把
'temp2 = space(1024*1024*50) '50MB
前面的注释号 ' 去掉,改成
temp2 = space(1024*1024*50) '50MB
内存变化截图3:
实验原始代码:
<script language=vbscript runat=server>
Dim temp1,temp2
'temp1 = space(1024*1024*50) '50MB
for i = 0 to 5000000 ' 延迟
next
'temp1="" '开关变量
'temp2 = space(1024*1024*50) '50MB
for i = 0 to 5000000 ' 延迟
next
Response.write "<meta http-equiv='refresh' content='4;url=http://localhost/memory_test.ASP'>"
</script>
内存变化截图1:
截图解释:
CPU的波形变化是由页面自动刷新引起的,不必在意!我们要观察的只是内存线的变化.这是原始状态,内存线保持水平无变化.
好,下面实验正式开始:
第一步:
把原始代码中的
'temp1 = space(1024*1024*50) '50MB
前面的注释号 ' 去掉,改成
temp1 = space(1024*1024*50) '50MB
再观察内存变化一段时间
内存变化截图2:
结果:
内存开始出现方波.
第二步:
接着也把
'temp2 = space(1024*1024*50) '50MB
前面的注释号 ' 去掉,改成
temp2 = space(1024*1024*50) '50MB
内存变化截图3:
<%
function foot(abc)
abc=split(abc,";")
for i=0 to ubound(abc)
str =abc(i)&chr(10)
str = Split(str,"|")
response.write "<a href=" & Str(1)
If Str(2)=1 Then Response.Write " target=_blank "
Response.Write ">" & Str(0) & "</a>" &chr(10)
next
end function
%>
<% abc="首页|index.asp|0;图片|pic.asp|0;文章|act.asp|0;教程|act.asp|0;blog|http://www.aixq.com|1" %>
<%= foot(abc) %>
记得第一次为了弄“在一级分类下面也显示,该类的子类,与子类,也显示兄弟类的时候,我用了,一个if else会开写,先判断id是不是父类的,如果是,显示所有的子类,如果子类,先得到父类的id,然后在用父类的id把下面的子类给输出,今天晚上想了又想,终于用sql来完成这个问题了
<div id="headline">
<%
exec="select * from cat where ( pcatid="&id&" or pcatid in(select pcatid from cat where id="&id&" and not (pcatid=0) order by list asc)) and view=1 order by list asc"
set cat=server.createobject("adodb.recordset")
cat.open exec,conn,1,1
do while not cat.eof
response.Write img&"<a href=class.asp?id="&cat("id")&">"&cat("catname")&"</a> "
cat.movenext
loop
cat.close
set cat=Nothing
%>
</div>
<div id="headline">
<%
exec="select * from cat where ( pcatid="&id&" or pcatid in(select pcatid from cat where id="&id&" and not (pcatid=0) order by list asc)) and view=1 order by list asc"
set cat=server.createobject("adodb.recordset")
cat.open exec,conn,1,1
do while not cat.eof
response.Write img&"<a href=class.asp?id="&cat("id")&">"&cat("catname")&"</a> "
cat.movenext
loop
cat.close
set cat=Nothing
%>
</div>
Sub DBConnBegin()
' 如果数据库对象已打开,不要再打开
If IsObject(oConn) = True Then Exit Sub
' 你可以不需要打开数据库连接对象而直接打开记录集对象,但如果你需要打开多个记录集对象的话,效率是很低的。
' 如果你不创建一个数据库连接对象,ADO会在每个记录集打开时自动创建一个新的数据库连接对象,就算你用的是相同的SQL语句。
Set oConn = Server.CreateObject("ADODB.Connection")
On Error Resume Next
' Access数据库
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/ewebeditor.asa")
' SQL Server 2000数据库
'oConn.Open "Provider=SQLOLEDB.1;Server=localhost;UID=ewebeditor;PWD=123456;Database=ewebeditor"
If Err.Number > 0 Then
' 显示错误信息,并且发送邮件通知管理员
'Call DBConnError(Err)
' 如果数据库对象已打开,不要再打开
If IsObject(oConn) = True Then Exit Sub
' 你可以不需要打开数据库连接对象而直接打开记录集对象,但如果你需要打开多个记录集对象的话,效率是很低的。
' 如果你不创建一个数据库连接对象,ADO会在每个记录集打开时自动创建一个新的数据库连接对象,就算你用的是相同的SQL语句。
Set oConn = Server.CreateObject("ADODB.Connection")
On Error Resume Next
' Access数据库
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/ewebeditor.asa")
' SQL Server 2000数据库
'oConn.Open "Provider=SQLOLEDB.1;Server=localhost;UID=ewebeditor;PWD=123456;Database=ewebeditor"
If Err.Number > 0 Then
' 显示错误信息,并且发送邮件通知管理员
'Call DBConnError(Err)
测试的程序
<%
c=now
while k<1110000
k=k+1
wend
d=now
response.write "while "& ((d-c)*24*60*60)& "秒<br>"
%>
<%
e=now
do while n<1110000
n=n+1
loop
f=now
response.write "do while "&((f-e)*24*60*60)& "秒<br>"
%>
<%
a=now
for i=1 to 1110000
next
b=now
response.write "for "& ((b-a)*24*60*60)& "秒<br>"
%>
测试的结果
while 4.00000030640513秒
do while 3.00000007264316秒
for 0秒
<%
c=now
while k<>1110000
k=k+1
wend
d=now
response.write "while "& ((d-c)*24*60*60)& "秒<br>"
%>
<%
e=now
do while n<>1110000
n=n+1
loop
f=now
response.write "do while "&((f-e)*24*60*60)& "秒<br>"
%>
<%
a=now
for i=1 to 1110000
next
b=now
response.write "for "& ((b-a)*24*60*60)& "秒<br>"
%>
测试结果:
while 4.99999991152436秒
do while 3.00000007264316秒
for 0秒
第三次测试
<%
c=now
while k<>1110000
k=k+1
wend
d=now
response.write "while "& ((d-c)*24*60*60)& "秒<br>"
%>
<%
e=now
do while n<>1110000
n=n+1
loop
f=now
response.write "do while "&((f-e)*24*60*60)& "秒<br>"
%>
<%
a=now
for i=1 to 11110000 '给它多加了一位
next
b=now
response.write "for "& ((b-a)*24*60*60)& "秒<br>"
%>
测试结果
while 3.00000007264316秒
do while 2.99999944400042秒
for 7.00000037904829秒
<%
c=now
while k<1110000
k=k+1
wend
d=now
response.write "while "& ((d-c)*24*60*60)& "秒<br>"
%>
<%
e=now
do while n<1110000
n=n+1
loop
f=now
response.write "do while "&((f-e)*24*60*60)& "秒<br>"
%>
<%
a=now
for i=1 to 1110000
next
b=now
response.write "for "& ((b-a)*24*60*60)& "秒<br>"
%>
测试的结果
while 4.00000030640513秒
do while 3.00000007264316秒
for 0秒
<%
c=now
while k<>1110000
k=k+1
wend
d=now
response.write "while "& ((d-c)*24*60*60)& "秒<br>"
%>
<%
e=now
do while n<>1110000
n=n+1
loop
f=now
response.write "do while "&((f-e)*24*60*60)& "秒<br>"
%>
<%
a=now
for i=1 to 1110000
next
b=now
response.write "for "& ((b-a)*24*60*60)& "秒<br>"
%>
测试结果:
while 4.99999991152436秒
do while 3.00000007264316秒
for 0秒
第三次测试
<%
c=now
while k<>1110000
k=k+1
wend
d=now
response.write "while "& ((d-c)*24*60*60)& "秒<br>"
%>
<%
e=now
do while n<>1110000
n=n+1
loop
f=now
response.write "do while "&((f-e)*24*60*60)& "秒<br>"
%>
<%
a=now
for i=1 to 11110000 '给它多加了一位
next
b=now
response.write "for "& ((b-a)*24*60*60)& "秒<br>"
%>
测试结果
while 3.00000007264316秒
do while 2.99999944400042秒
for 7.00000037904829秒
<%
''文件删除函数
function deletefile(filename)
if filename<>"" then
set fso=server.CreateObject("scripting.filesystemobject")
if fso.FileExists(filename) then
fso.DeleteFile filename
else
Response.Write "<script>alert(''该文件不存在'');</script>"
end if
end if
end function
strfile=server.MapPath("fileName")
deletefile(strfile)
%>
'程序名:delfile.asp
'关键参数:struploadfiles 文件名称
例:<a href="/delfile.asp?action=test.rar">删除test.rar文件</a>
<%
struploadfiles=trim(request.querystring("struploadfiles"))
action=trim(request.querystring("action"))
response.write "成功删除<font color=red>"&struploadfiles&"</font>文件!"
call delfiles(struploadfiles & "")
sub delfiles(struploadfiles)
if struploadfiles="" then exit sub
dim fso,arruploadfiles,i
set fso = createobject("scripting.filesystemobject")
fso.deletefile(server.mappath("" & struploadfiles))
set fso = nothing
response.write"<script language=javascript>alert('成功删除文件,将返回上一页!');"
response.write"this.location.href='javascript:history.back();'</script>"
end sub
%>
<%
''文件删除函数
function deletefile(filename)
if filename<>"" then
set fso=server.CreateObject("scripting.filesystemobject")
if fso.FileExists(filename) then
fso.DeleteFile filename
else
Response.Write "<script>alert(''该文件不存在'');</script>"
end if
end if
end function
strfile=server.MapPath("fileName")
deletefile(strfile)
%>
关于上面这个函数!不能做到删除某种类型的文件,或是,我们自己定义的权限!






