网络编程
位置:首页>> 网络编程>> Asp编程>> ASP 快速执行网页(3)

ASP 快速执行网页(3)

 来源:asp之家 发布时间:2020-07-07 11:14:17 

标签:ASP,快速执行, , 页

ASP译码问题:
尽可能在客户端确认用户输入来减少HTTP来回请求的数量。如果浏览器有支持JavaScript或其它脚本的能力,使用它们的力量以释放更多的服务器资源。
下面的VBScript运行于客户端浏览器,在提交到你的服务器之前,用来验证用户信息:

<SCRIPT LANGUAGE="VBScript"> 
<!-- 
Sub btnEnter_OnClick 
Dim TheForm 
Set TheForm = Document.MyForm 
If IsNumeric(TheForm.Age.Value) Then 
TheForm.submit 
Else 
Msgbox "Please enter a numerical age." 
End if 
End Sub 
//--> 
</SCRIPT> 
<FORMmethod="POST" name=MyFormaction="myfile.asp">? Name: <INPUT typr="text" name="Name"> 
Age: <INPUT type="text" name="Age"> 
<INPUT type="button" name="btnEnter"value="Enter"> 
</FORM> 

使用局部变量,避免使用全局变量。局部变量比全局变量更快地被Asp 脚本引擎存取,因为不需搜索整个名称域。避免改变数组定义。在第一次初始化的时候就简单分配足够的大小效率更高。在这种情况下,你可能会浪费一些内存,但你获得了速度的优势。在服务器负载重的时候这个技术是显然易见有效的。
如果你需要引用不一定要用到的对象,那么最好使用<OBJECT>标记而不是用 Server.CreateObject方法。 使用Server.CreateObject引起对象立即被建立,反之,<OBJECT>标记则不会这样立即建立对象如果使用<object>定义后不使用该对象,你不会浪费资源。
例如:下面的例子是一个使用<OBJECT>标记建立一个application-scope广告轮 Ad Rotator对象实
例:

<OBJECT runat=server scope=Application id=MyAds progid="MSWC.AdRotator"> 
</OBJECT> 


在存储该Ad Rotator对象进Application后,你可以在任何程序的页面中用下面的语法访问该对象
<%=MyAds.GetAdvertisement("CustomerAds.txt") %>
打开'Option Explicit'开关。在VB和VBScript 中,你可以在没有显式声明的情况下使用变量。但打开这个选项可以鉴别用定义变量,这样可以很好地书写变量,并能帮助提高*能。未定义的局部变量会变慢,因为在建立它之前,名称空间必须被搜遍后才知道变量是否存在。摆脱它,使每个变量清楚地定义(先定义后使用)。
这是一个好习惯,it may trap typos, 这样更快。
除非你真正需要使用,否而不要使用Server.MapPath方法。如果你知道真实路径就使用真实路径。使用MapPath需要IIS找回现时服务器路径,这意味着得向服务器发一个特殊的请求,也就意味着降低了*能。另一个方法是将路径存放到局部变量中,在需要的时候使用,这样就不需要服务器多次查找。
检查你自己是怎么做的
你可以通过工具来测量你的系统*能,比如系统*能监视器,netMon和PerfMon。测试web*能可以用WCAT (Web Capacity Analysis Tool)。使用WCAT,你可以测试你的IIS服务器和网络配置响应各种各样的客户请求,数据或HTML页面的能力。这些测试结果能够被用来作为优化你的服务器和网络配置的指导。WCAT是专门设计用来估计Windows 2000中的因特网服务(或Windows NT)和IIS 能响应的客户工作量
(仿真)。为了得到更多的信息,请参阅IIS Resource Kit(资源工具包)。那里也有冗长的WCAT用户指南在MSDN在线Web sorkshop站点里面有一个下载链接。如果你认真对待你的Asp *能的话,务必取得该工具。
力求最优化应用程序*能,你的web 应用程序会运行更加顺畅。如果不是真正需要,就不要影响服务器的*能。
asp 用存储过程实现数据分页
 一、创建表 tiku_koushi

if exists (select * from dbo.sysobjects where id = 
object_id(N'[dbo].[tiku_koushi]') and OBJECTPROPERTY 
(id, N'IsUserTable') = 1) 
drop table [dbo].[tiku_koushi] 
GO 
CREATE TABLE [dbo].[tiku_koushi] ( 
[id] [int] IDENTITY (1, 1) NOT NULL , 
[title] [varchar] (250) COLLATE 
Chinese_PRC_CI_AS NULL , 
[list2_id] [char] (10) COLLATE 
Chinese_PRC_CI_AS NULL 
) ON [PRIMARY] 
GO 

  二、存储过程 sp_c

CREATE proc sp_c 
@tablename varchar(50), 
@title varchar(250), 
@list2_id varchar(50) 
as 
if @tablename='tiku_koushi' 
select count(*) from tiku_koushi where title like '%'+@title+'%' and list2_id=@list2_id 
GO 

 三、存储过程 sp_search_tiku

CREATE PROCEDURE sp_search_tiku 
@tablename varchar(50), 
@title varchar(250), 
@list2_id varchar(10), 
@pagesize int, 
@page int 
AS 
if @tablename='tiku_koushi' 
begin 
declare @ks int 
declare @str varchar(200) 
set @ks=@pagesize*(@page-1) 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[temp_table91]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
begin 
select * into temp_table91 from tiku_koushi where 
title like '%'+@title+'%' and list2_id=@list2_id order 
by id desc 
set rowcount @pagesize 
set @str='select * from temp_table91 where id not in 
(select top '+str(@ks)+' id from temp_table91)' 
execute(@str) 
drop table temp_table91 
end 
end 
GO 

  四、search_koushi.asp

<!-- #include file="conn.asp" --> 
<% 
line=6 
if request("page")="" then 
page=1 
else 
page=request("page") 
end if 
if page<1 then 
page=1 
end if 
title=trim(request("title")) 
list2_id=trim(request("list2_id")) 
set rs2=conn.execute("sp_c 'tiku_koushi','"&title&"','"&list2_id&"'") 
pagecount=CInt(rs2(0)\line) 
if(CInt(rs2(0)) mod line)=0 then 
pagecount=pagecount 
else 
pagecount=pagecount+1 
end if 
if CInt(page)>=pagecount then 
page=CInt(pagecount) 
end if 
str="" 
str=str&"page="&page&"&title="&title&"&list2_id="&list2_id 
set rs=conn.execute 
("sp_search_tiku 'tiku_koushi','"&title&"','"&list2_id&"','"&line&"','"&CInt(page)&"'") 
if rs.eof then 
response.write "no record" 
else 
%> 
<html> 
<head> 
<style type="text/css"> 
td{font-size:12px;} 
a{text-decoration:none;} 
</style> 
<script language="javascript"> 
</script> 
</head> 
<body> 
<table width="518" border="1" bordercolorlight="000000" 
bordercolordark="#ffffff" 
align="center" cellpadding="0" cellspacing="0"> 
<!--DWLayoutTable--> 
<tr bgcolor=#dfdfdf> 
<td width="454" align="center" height=24 valign="middle">口试题的题目</td> 
<td width="63" align="center" valign="middle">删除</td> 
</tr> 
<% do until rs.eof %> 
<tr height=22> 
<td valign="middle">·<a href=void(0)" 
onclick="window.open('editkoushi.asp?id=<%=rs("id")%>&page=<%=page%>&title=<%=title%>&list2_id=<%=list2_id%>','','width=518 
height=160 left=100')"> 
<%=rs("title")%></a></td> 
<td align="center" valign="middle">删除</td> 
</tr> 
<% 
rs.movenext 
loop 
%> 
<tr align="left" valign="middle" bgcolor="efeff6" 
height=22> 
<td colspan="2" style="padding-left:6px;"> 
<a href="search_koushi.asp?page=<%=1%>&title=<%=title%>&list2_id=<%=list2_id%>">首页</a> <a 
href="search_koushi.asp?page=<%=page-1%>&title=<%=title%>&list2_id=<%=list2_id%>">上一页</a> <a 
href="search_koushi.asp?page=<%=page+1%>&title=<%=title%>&list2_id=<%=list2_id%>">下一页</a> <a 
href="search_koushi.asp?page=<%=pagecount%>&title=<%=title%>&list2_id=<%=list2_id%>">末页</a>   
一共 <%=pagecount%> 页 当前页为: <%=page%>/<%=pagecount%> 页 
  共有 <%=rs2(0)%> 条记录</td> 
</tr> 
</table> 
</body> 
</html> 
<% 
rs2.close 
set rs2=nothing 
rs.close 
set rs=nothing 
end if 
%>

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com