知识大全 Asp编码优化技巧8则
Posted 知
篇首语:识字粗堪供赋役,不须辛苦慕公卿。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Asp编码优化技巧8则相关的知识,希望对你有一定的参考价值。
Asp编码优化技巧8则 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP(Active Server Page)是Microsoft公司推出的基于PWS(Personal Web Server)&IIS(Internet Information Server)平台的 基于ISAPI(InternetServiceAPI)原理的动态网页开发技术 目前日趋成熟完善 在这里仅就代码优化进行一些简单讨论 声明VBScript变量 在ASP中 对vbscript提供了强劲的支持 能够无缝集成vbscript的函数 方法 这样给扩展ASP的现有功能提供了很大便利 由于ASP中已经模糊了变量类型的概念 所以 在进行ASP与vbscript交互的过程中 很多程序员也惯于不声明vbscript的变量 这样加重了服务器的解析负担 进而影响服务器的响应请求速度 鉴于此 我们可以象在VB中强制用户进行变量声明一样在vbscript中强制用户进行变量声明 实现方法是在ASP程序行首放置<% option explicit%> 对URL地址进行编码 在我们使用asp动态生成一个带参数URL地址并进行跳转时 在IE中解析很正常 但在NetScrape浏览时却有错误如下 HTTP Error Bad Request Due to malformed syntax the request could not be understood by the server The client should not repeat the request without modifications
解决方法是对生成的URL参数使用ASP内置server对象的URLencode方法进行URL编码 例子如下 <% URL= xur asp var = username= & server URLencode( xur ) var = &pany= & server URLencode( xurstudio ) var = &phone= & server URLencode( ) response redirect URL & ? & var & var & var %>
清空对象 当使用完对象后 首先使用Close方法来释放对象所占用的系统资源 然后设置对象值为 nothing 释放对象占用内存 当年 我就是在一张页面上创建了百余个没有清空对象的记录集而崩溃了我的IIS 下面的代码使用数据库内容建立一个下拉列表 代码示例如下 <% myDSN= DSN=xur;uid=xur;pwd=xur mySQL= select * from authors where AU_ID< set conntemp=server createobject( nnection ) conntemp open myDSN set rstemp=conntemp execute(mySQL) if rstemp eof then response write 数据库为空 response write mySQL conntemp close set conntemp=nothing response end end if%> <%do until rstemp eof %> <% rstemp movenext loop rstemp close set rstemp=nothing conntemp close set conntemp=nothing %>
使用字符串建立SQL查询 使用字符串来建立查询并不能加快服务器的解析速度 相反 它还会增加服务器的解析时间 但在这里仍然推荐使用字符串代替简单的查询语句来进行查询 这样做的好处是 可以迅速发现程序问题所在 从而便利高效地生成程序 示例如下 <%mySQL= select * mySQL= mySQL & from publishers mySQL= mySQL & where state= NY response write mySQL set rstemp=conntemp execute(mySQL) rstemp close set rstemp=nothing %>
使用case进行条件选择 在进行条件选择的时候 尽量使用case语句 避免使用if语句 使用case语句 可以使程序流程化 执行起来也比if语句来的快 示例如下
<% FOR i = TO n = i Response Write AddSuffix(n) & <br> NEXT %> <% Function AddSuffix(num) numpart = RIGHT(num ) SELECT CASE numpart CASE IF InStr(num ) THEN num = num & th ELSE num = num & st END IF CASE IF InStr(num ) THEN num = num & th ELSE num = num & nd END IF CASE IF InStr(num ) THEN num = num & th ELSE num = num & rd END IF CASE num = num & th CASE ELSE num = num & th END SELECT AddSuffix = num END FUNCTION %>
使用adovbs inc文件中定义的常量打开记录集 打开记录集时 可以定义记录集打开的游标类型和锁定类型 在adovbs inc文件中定义了一些常量来定义这些类型 adovbs inc文件保存在\\inetpub\\iissamples\\IISamples目录下面 下面列举几个常用的游标类型和锁定类型 游标类型 adOpenFowardOnly游标只能向前 adOpenKeyset游标可向前或者向后 如一用户添加记录 新记录不会出现在记录集中 adOpenDynamic游标动态随意 adOpenStatic记录集不对其他用户造成的记录修改有所反映 锁定类型 adLockReadOney不能修改记录集中的记录 adLockPessimistic在编辑一条记录时锁定它 adLockOptimstic调用记录集Update方法时才锁定记录 adLockBatchOpeimstic记录只能成批更新 <! #INCLUDE VIRTUAL= /ADOVBS INC > <% connectme= DSN=xur;uid=xur;pwd=xur sqltemp= select * from publishers where name= xur set rstemp=Server CreateObject( adodb Recordset ) rstemp open sqltemp connectme adOpenStatic adLockOptimstic response write rstemp recordcount & records in<br> & sqltemp rstemp close set rstemp=nothing %>
避免在使用global asa文件中进行对象定义 由于global asa文件中的内容可以为站点内所有文件引用 无疑 在global asa文件中进行对象定义可以省去很多重复工作 比如在global asa中的application_onstart函数中进行如下定义 <%SUB application_onstart set application( theCONN )=server createobject( nnection ) END SUB %>;
这样就可以在站点任何代码中做类似引用 <% mySQL= select * from publishers where state= xur set rstemp=application( theconn ) execute(mySQL) %>
同样地 可以在session_onstart函数中创建记录集对象 <%SUB session_onstart set session( rstemp )=server createobject( adodb recordset ) END SUB %>
然后在站点也面中进行如下引用 <% mySQL= select * from publishers where state= xur set session( rstemp )=conntemp execute(mySQL) %>
但这样做的同时也有很大的负面影响 由于Application和session变量都只有在关闭网站的时候才释放占用的资源 所以session参数会浪费大量不必要内存 而且此时application变量成为服务器性能的瓶颈 解决方法 建立定义对象asp页面 在需要进行调用这些对象的页面上 引入这张asp页面 假设定义对象的asp页面名称为define asp 则只要在对应asp页面中加入以下语句就能引入该页面 <! #INCLUDE VIRTUAL= /define asp > 在进行页面引进时 最好在待引进的asp文件中不要包含<%@LANGUAGE= VBSCRIPT %>语句 因为在asp文件中 只能有一句由@来定义的脚本解析语言
相关参考
有关数据库的优化这个问题平常一般我们接触的比较少所以有时没有引起足够的重视但是在某些时候这将关系到整个软件的成败 一般来说我们考虑要做数据库的优化的时候是建立在设计已经定型的基础上的往往设计
ASP.NET程序是如何处理文件编码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! DotNet
在做采集的朋友就会知道经常会碰到采集过来的内容是乱码下面我们就来看一篇关于asp教程采集数据并自动判断网页编码并转换吧cha138/Article/program/net/201311/
cha138/Article/program/net/201311/14021
cha138/Article/program/net/201311/14362
Asp.net关于对url编码的转化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 今天突然遇到
ASP程序在同一个站点中如果有UTF编码的程序又有GB编码的程序时在浏览UTF编码的页面后再浏览当前网站GB的页面GB编码的页面就会出现乱码出现这样的问题是当你浏览UTF编码的时候服务器默认用UT
最大限度优化你的Asp程序的性能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASP能快速执行
教你优化你的ASP程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/Art
ASP.NET如何进行性能优化问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一SqlDat