优内建站网,专业建站,企业建站,免费建站,智能建站,个人建站!
主营企业建站,seo优化,手机网站,微信网站开发等业务!>> 繁体中文
用户名: 密 码: 验证码:    
企业建站,专业建站,模板建站,智能建站
 您现在的位置:首页 >> 网络编程 >> 详细内容>>        【字体:  】【颜色: 绿

四则技巧优化你的ASP应用程序

在百度搜索关于“四则技巧优化你的ASP应用程序”的内容

在谷歌搜索关于“四则技巧优化你的ASP应用程序”的内容

买空间、服务器就上威客主机网(VK163.COM) 虚拟主机评测+IDC导航=威客主机之家 标志设计
[内容提要] ASP优化一直是ASP程序员追求的事,本文将向大家介绍四则优化ASP应用程序的技巧。1.将经常使用的数据缓存在Application或Session对象中ASP的Application和Session对象为将数据暂存在内存中提供了方便的容器。你可以将数据指派到Applic...

作者: 优内科技  来源: 优内科技  驻站日期:2009/9/28 【 加入收藏 】 【 打印此页 】 【 关闭

ASP优化一直是ASP程序员追求的事,本文将向大家介绍四则优化ASP应用程序的技巧。

1.将经常使用的数据缓存在 Application 或 Session 对象中
ASP的Application和Session对象为将数据暂存在内存中提供了方便的容器。你可以将数据指派到 Application和Session对象中,这些数据在HTTP调用之前保留在内存中。Session数据是按每个用户分别存储的,而Application数据则在所有用户之间共享。

什么时候将数据装载到 Application 或 Session 中呢?通常,数据是在启动 Application 或 Session 时装载。要在Application或Session启动过程中装载数据,应将适当的代码分别添加到Application_OnStart()或Session_OnStart()中。这些函数应该在 Global.asa 中,如果没有,我们可手工添加进这些函数。还可以在第一次需要时装载该数据。为此,在 ASP 页中添加一些代码(或编写一个可重复使用的脚本函数),以检查数据是否存在,如果不存在,就装载数据。这是一个传统提高性能的技术,称为“惰性计算”,即在你知道需要某一个值以前不计算该值。程序举例如下:

<%
Function GetEmploymentStatusList
Dim d
d = Application(?EmploymentStatusList?)
If d = ?? Then
' FetchEmploymentStatusList function (not shown)
' fetches data from DB, returns an Array
d = FetchEmploymentStatusList()
Application(?EmploymentStatusList?) = d
End If
GetEmploymentStatusList = d
End Function
%>

我们可以为所需要的每个数据块编写类似的函数。

2.将代码封装在 COM 对象中
如果你的Web应用程序中有许多 VBScript 或JScript代码,你可以经常将代码移到编译的 COM 对象中,从而可改善性能。将代码封装在 COM 对象中还有一些除提高性能之外的其他优点:

(1)COM 对象有利于将表示逻辑与业务逻辑分开;

(2)COM 对象可以保证代码重复使用;

(3)用VB、VC++ 或 Visual J++ 编写的代码比 ASP 更容易调试。

COM对象也有缺点,包括初始化时间长和需要不同的程序设计技巧。值得注意的是,在少量ASP代码被封装进 COM 对象时,可能不会使性能有所改进,反而会引起性能下降。这种情况通常是创建和调用 COM 对象的系统开销超过了编译代码的系统开销。因此,我们需要反复地试验,以确定什么样的 ASP 脚本和 COM 对象代码的组合可以产生最好的性能。

3.处理内嵌脚本和Response.Write语句
VBScript 语法的<% = expression %>是将“expression”的值写到ASP输出流中。如果响应缓冲未启用,那么执行其中的每一条语句都会以许多小的数据包通过网络将数据写到浏览器中。这样,执行速度很慢,而且穿插执行少量的脚本和 HTML,将会引起脚本引擎和 HTML 之间的切换,从而极大地降低了性能。因此,我们可以使用下面的技巧,即使用 Response.Write 调用代替捆绑紧密的内嵌表达式。

例如,在下面的示例中,在每一行的每一字段对响应流有一次写操作,每一行在 VBScript 和 HTML 之间有多次切换:

<table>
<% For Each fld in rs.Fields %>
<th><% = fld.Name %></th>
<%
Next
While Not rs.EOF
%>
<tr>
<% For Each
fld in rs.Fields %>
<td><% = fld.Value %></td>
<% Next
</tr>
<% rs.MoveNext Wend %>
</table>

为了使上面的代码运行效率更高,我们可以利用下面的代码,代码的每一行对响应流有一次写操作,所有的代码都包含在一个VBScript程序内:

<%
Response.Write(?<table>?)
For each fld in rs.Fields
Response.Write (?<th>? && fld.Name && ?</th>? && vbCrLf)
Next
While Not rs.EOF
Response.Write (?<tr>?)
For Each fld in rs.Fields %>
Response.Write(?<td>? && fld.Value && ?</td>? && vbCrLf)
Next
Response.Write(?</tr>?)
Wend
Response.Write(?</table>?)
%>

当禁用响应缓冲时,这一技巧的效果特别明显。最好启用响应缓冲,然后看批处理 Response.Write 是否有助于提高性能。

4.避免重新确定数组的维数
在应用数组时,我们应尽量避免使用Redim数组。就性能而言,如果计算机的物理内存大小有限,最好将数组的初始维数设置为其最不利的情况,或者将维数设置为其最佳的情况,然后再按需要重新确定维数。

在开发ASP的Web应用程序过程中,充分利用以上技巧会使你的Web程序具有较高的执行性能。

添加到QQ书签 百度收藏 订阅到抓虾 添加到鲜果  新浪ViVi  365Key网摘  天极网摘  我摘  和讯网摘  yahoo  收藏到收客网  Digbuzz我挖网  添加到饭否  挖客  添加到google  

   【回到顶部】 【返回文章列表】 编辑:优内科技
⊕ 上一篇:一些Asp技巧和实用解决方法
⊕ 下一篇:ASP统计用户在站点的停留时间
  相关新闻
返回首页 | 设为首页 | 添加收藏 | 关于我们 | 联系我们 | 企业文化 | 合作伙伴 | 诚聘英才 | 网站报价 | 企业资质 | 网站地图
邮箱登陆 E- mail:master@cck5.com 点击这里给我发消息 客服专员 QQ:310203268 点击这里给我发消息 技术咨询 QQ:22071287点击这里给我发消息 代理备案 QQ:529631515
丰富的网站建设经验,专业提供网站建设、网站制作、网页设计服务,专业设计,真诚服务,不满意不收费!
Copyright 2008 - 2025 cck5 Inc. All Rights Reserved 优内建站网络科技公司
本站部分资源来自网络,如有侵犯您的版权,请告之,我们将即刻删除!QQ:310203268
主要业务:网站建设企业建站专业建站智能建站SEO优化微信建站手机建站
本站ICP备案号:浙ICP备11019299号 中国电信增值ICP经营许可证
不良信息举报中心 江西网警 信息产业部门备案 企业法人营业执照
 
扫优内微信二维码
“码”上有惊喜