ASP 快速执行网页(3)
来源:asp之家 发布时间:2020-07-07 11:14:17
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
%>


猜你喜欢
- 一、启动/关闭MySQL (1)启动MySQL
- 因此为了节省服务器资源,应该尽可能关闭连接以释放连接所占有的资源,这种关闭记录集的连接而不关闭记录集的技术叫做断开记录集,这个记录集本身则称
- 本文全部操作均在windows环境下安装 PythonPython是一种跨平台的计算机程序设计语言,它可以运行在Windows、Mac和各种
- 本文实例讲述了js实现点击后将文字或图片复制到剪贴板的方法,代码非常简洁实用,具体功能代码如下所示:实现复制文字代码:<table w
- 概述今天我们要来做一个进阶的花分类问题. 不同于之前做过的鸢尾花, 这次我们会分析 102 中不同的花. 是不是很上头呀.预处理导包常规操作
- 为了方便例子讲解,现有数组和json对象如下var demoArr = ['Javascript', 'Gulp
- 本文实例讲述了php动态生成版权所有信息的方法。分享给大家供大家参考。具体实现方法如下:function copyright($start,
- 目录Blazor Server 应用程序中进行 HTTP 请求一、第三方 Web API 概览二、从 Blazor Sever 应用程序开始
- 在大的互联网公司干技术的基本都会碰到测试、预发布、线上这种多套环境的,来实现测试和线上正式环境的隔离,这种情况下,就难免会碰到秀逗了把测试的
- 作为一个Oracle数据库开发者或者DBA,在实际工作中经常会遇到这样的问题:试图对库表中的某一列或几列创建唯一索引时,系统提示ORA-01
- 如下所示:# coding = utf-8import requestsimport jsonhost = "http://47.
- 本文实例为大家分享了python爬取淘宝商品的具体代码,供大家参考,具体内容如下import requests as req import
- 1.循环删除 #这个是我选中其中的一个分支进行右键清空操作时进行的处理for i in range(self.tree.currentIte
- 项目运行环境阿里云(单核CPU, 1G内存, Ubuntu 14.04 x64 带宽1Mbps), 具体购买和ssh连接阿里云本文不做描述。
- UPDATE是否会加锁?SQL语句为如下时,是否会加锁?UPDATE table1 SET num = num + 1 WHERE id=1
- 摘要PIL.Image.open读入的是RGB顺序,而opencv中cv2.imread读入的是BGR通道顺序 。cv2.imread会显示
- 在js中this的指向对于新手来说一定是个难题,但是如果你真正理解了的话,也就没什么问题啦,下面就来讲讲this吧。JS中,this的值取决
- 思路利用scapy库,在这个库的基础下能够做很多的事情,python读取pcap包网上一找一大把将读取出来的pcap包改一个名字,然后写回,
- 前言:本文的主要内容是介绍Python中的变量命名规则和简单数据类型的应用,简单的数据类型包括字符串和数字等,文中还附有代码以及相应的运行结
- 今天早上起来写爬虫,基本框架已经搭好,添加多线程爬取功能时,发现出错:比如在下载文件的url列表中加入200个url,开启50个线程。我的爬