网络编程
位置:首页>> 网络编程>> 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
投稿

猜你喜欢

  • 1、使用mysqldump工具将MySql数据库备份mysqldump -u root -p -c --default-character-
  • 先装 MYSQL 的 ODBC 驱动然后'connect to MySQL server&n
  • 到目前为止,我们连接的都是两张不同的表,那么能不能对一张表进行自我连接呢?答案是肯定的。有没有必要对一张表进行自我连接呢?答案也是肯定的。
  • 文章主要描述的是SQL Server数据库和Oracle数据库行转列的一种比较典型操作方法,对于有些业务来说,数据在表中的存储与其最终的Gr
  • 矛盾出来了,像我们这些小作坊,基本都是设计布局一人搞定。甚至还有加后台程序的。假设设计的时候考虑布局了,我们都有这个能力进行调整。但像大公司
  • 在ASP中Request对象是获取客户端提交数据的一个很重要的对象,大家对他也是非常熟悉了。 虽然如此,还是经常有人问我下面的几种写法有什么
  • 朋友去面试。对方问他:说说你之前做的那个站,有什么地方好的?朋友就说:用户体验比别的站好。对方又问:你怎么知道用户体验比别的好?朋友于是又磕
  • 大家都知道索引对于数据访问的性能有非常关键的作用,都知道索引可以提高数据访问效率。为什么索引能提高数据访问性能?他会不会有“副作用”?是不是
  • 1.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;2.会用asp,并不说明你会asp;3.看a
  • PHP implode() 函数实例把数组元素组合为一个字符串:<?php $arr = array('Hello',
  • 我们一般在调试程序的时候,有些操作会莫名地失败,又没有错误消息提示,特别是在执行数据库操作的时候,明明执行过去了,可就是数据库里没有记录变动
  • MySQL Group By用法我们现在回到函数上。记得我们用 SUM 这个指令来算出所有的 Sales (营业额)吧!如果我们的需求变成是
  • 如何对设计进行评判,一定有很多答案,有利有弊。问100位设计师,会得到100种回答。用线上PV、UV等数据说话,更多受产品属性、运营动作影响
  • 代码如下:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"
  • 问:我最近升级了一个应用程序,使其可以在 SQL Server 2005 上运行。我利用了允许行长度超出 8,060 个字节这项功能,以便用
  • 近期公司准备开发一个计费项目,数据库当然还是选用我最信赖的Oracle了。由于一部分基础数据在一台Win2000 Server的S
  • 首先你要确定错误的原因: 让IE显示详细的出错信息: 菜单--工具--Internet选项--高级--显示友好的HTTP错误信息,去掉这个选
  • 如何验证IP地址?sub chkIP(boardid) dim rsIP dim ipAr
  • 本文汇总了在Access数据库安全问题中最为常见的问题来做出解答。问:什么是Microsoft Access 工作组,怎样创建工作组信息文件
  • 作者:AngelGavin  出处:CSDNInternet Explorer 5.0 对 XML 提供哪个级别的支持?Inter
手机版 网络编程 asp之家 www.aspxhome.com