第五章 asp优化:5.1 ASP编码优化技巧8则

2016-02-19 14:03 14 1 收藏

有了下面这个第五章 asp优化:5.1 ASP编码优化技巧8则教程,不懂第五章 asp优化:5.1 ASP编码优化技巧8则的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - Web开发 】

1、声明VBScript变量
    在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数、方法,这样给扩展ASP的现有功能提供了很大便利。由于ASP中已经模糊了变量类型的概念,所以,在进行ASP与vbscript交互的过程中,很多程序员也惯于不声明vbscript的变量,这样加重了服务器的解析负担,进而影响服务器的响应请求速度。
鉴于此,我们可以象在VB中强制用户进行变量声明一样在vbscript中强制用户进行变量声明。实现方法是在ASP程序行首放置<% option explicit%>。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

2、对URL地址进行编码
    在我们使用asp动态生成一个带参数URL地址并进行跳转时,在IE中解析很正常,但在NetScrape浏览时却有错误如下:
HTTP Error 400
400 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"
var1="username=" & server.URLencode("xur")
var2="&company=" & server.URLencode("xurstudio")
var3="&phone=" & server.URLencode("021-53854336-186")
response.redirect URL & "?" & var1 & var2 & var3
%>

3、清空对象
    当使用完对象后,首先使用Close方法来释放对象所占用的系统资源;然后设置对象值为nothing释放对象占用内存。当年,我就是在一张页面上创建了百余个没有清空对象的记录集而崩溃了我的IIS 。下面的代码使用数据库内容建立一个下拉列表。代码示例如下:
<% myDSN="DSN=xur;uid=xur;pwd=xur"
mySQL="select * from authors where AU_ID<100"
set conntemp=server.createobject("adodb.connection")
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
%>

4、使用字符串建立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
%>

5、使用case进行条件选择
    在进行条件选择的时候,尽量使用case语句,避免使用if语句。使用case语句,可以使程序流程化,执行起来也比if语句来的快。示例如下:
<%
   FOR i = 1 TO 1000
   n = i
   Response.Write AddSuffix(n) & "<br>"
   NEXT
   %>
   <%
   Function AddSuffix(num)
numpart = RIGHT(num,1)
SELECT CASE numpart
CASE "1"
IF InStr(num,"11") THEN
num = num & "th"
ELSE
num = num & &q

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)于Web Server安全范畴不在本文讨论范围内。下面提出两点简单的安全注意事项。
   虽然在asp中建议引入文件以inc作为扩展名,在这里仍建议以asp作为引文件的扩展名。当这些代码在安全机制不好的Web Server上运行时,只需在地址栏上输入引入文件的地址(inc为扩展名),就可以浏览该引入文件的内容,这是由于在Web Server上,如果没有定义好解析某类型(比如inc)的动态连接库时,该文件以源码方式显示。
   不要把数据库文件放在网站结构内部,这样,当恶意人士获取数据库路径后,就可以轻易获取该数据库,进而肆意更改数据库内容。比较好的做法是,为数据库建立DSN(Date Source Name),而在进行数据库访问时直接访问该DSN。

来源:http://www.tulaoshi.com/n/20160219/1606066.html

延伸阅读
标签: ASP
                 《 优化你的ASP程序 》       如果你是一位ASP爱好者,你一定想过ASP的执行效率如何?大家都知道ASP效率和CGI的比,在访问量少的时候,它们是不相上下的,有时可能CGI还会好点(我觉得这主要和NT系统运行效率有关),但在访问量大的时候,ASP要比...
标签: Web开发
XSL条件IF    XSL可以用一个IF语句过滤来自XML文档的信息。      在哪里放置IF条件    现在来重新看看你已经看过多次的XML文档:       ?xml version="1.0"?       CATALOG       CD     ...
数 组 是 有 序 数 据 的 集 合 ,数 组 中 的 每 个 元 素 具 有 相 同 的 数 据 类 型 ,可 以 用 一 个 统 一 的 数 组 名 和 下 标 来 唯 一 地 确 定 数 组 中 的 元 素 。 数 组 有 一 维 数 组 和 多 维 数 组 ,下 面 我 们 分 别 介 绍 。 § 5.1 一 维 数 组 一 、 一 维 数 组 的 定 义 一 维 ...
给宝宝起名的常识(第五章)     在我们国家传统的起名当中,名字如果太“绕口”的话也不要,因此我们接下来就来讲第五点起名字时候需要注意的——忌读“绕口”字!     起名有时可以得用叠音的方法。例如:丁 丁、方 芳、辛欣等。如果不是叠音的姓名,名和姓的发音方法就要拉开一定的距...
《永恒的尽头》流程攻略:第五章第五章【変わりゆくもの】 【エベル‧シティ(耶贝鲁市)】 1. 剧情后,取得能源结晶(红)x3、能源结晶(紫)x3,任务清单追加故事任务 2. 进入秘密据点,进入左侧琳蓓露的房间,调查前方亮点取得カチューシャ:はちんこくん 3. 来到公会接取任务『新たなる创作』、『お店に服が増えるわよ』、『...

经验教程

965

收藏

19
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部