Asp编码优化技巧8则

2016-01-29 19:52 7 1 收藏

Asp编码优化技巧8则,Asp编码优化技巧8则

【 tulaoshi.com - ASP 】

1、声明VBScript变量 
在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数、方法,这样给扩展ASP的现有功能提供了很大便利。由于ASP中已经模糊了变量类型的概念,所以,在进行ASP与vbscript交互的过程中,很多程序员也惯于不声明vbscript的变量,这样加重了服务器的解析负担,进而影响服务器的响应请求速度。 
鉴于此,我们可以象在VB中强制用户进行变量声明一样在vbscript中强制用户进行变量声明。实现方法是在ASP程序行首放置。 
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编码,例子如下: 
 
3、清空对象 
当使用完对象后,首先使用Close方法来释放对象所占用的系统资源;然后设置对象值为“nothing”释放对象占用内存。当年,我就是在一张页面上创建了百余个没有清空对象的记录集而崩溃了我的IIS 。下面的代码使用数据库内容建立一个下拉列表。代码示例如下: 
 
 
 

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

4、使用字符串建立SQL查询 
使用字符串来建立查询并不能加快服务器的解析速度,相反,它还会增加服务器的解析时间。但在这里仍然推荐使用字符串代替简单的查询语句来进行查询。这样做的好处是,可以迅速发现程序问题所在,从而便利高效地生成程序。示例如下: 
 

5、使用case进行条件选择 
在进行条件选择的时候,尽量使用case语句,避免使用if语句。使用case语句,可以使程序流程化,执行起来也比if语句来的快。示例如下: 
 
   

6、使用adovbs.inc文件中定义的常量打开记录集 
打开记录集时,可以定义记录集打开的游标类型和锁定类型。在adovbs.inc文件中定义了一些常量来定义这些类型。adovbs.inc文件保存在inetpubiissamplesIISamples目录下面。下面列举几个常用的游标类型和锁定类型。 
游标类型:adOpenFowardOnly游标只能向前;adOpenKeyset游标可向前或者向后,如一用户添加记录,新记录不会出现在记录集中;adOpenDynamic游标动态随意;adOpenStatic记录集不对其它用户造成的记录修改有所反映。 
锁定类型:adLockReadOney不能修改记录集中的记录;adLockPessimistic在编辑一条记录时锁定它;adLockOptimstic调用记录集Update方法时才锁定记录;adLockBatchOpeimstic记录只能成批更新。 
 
 
7、避免在使用global.asa文件中进行对象定义 
由于global.asa文件中的内容可以为站点内所有文件引用,无疑,在global.asa文件中进行对象定义可以省去很多重复工作。比如在global.asa中的application_onstart函数中进行如下定义: 

这样就可以在站点任何代码中做类似引用: 
 
同样地,可以在session_onstart函数中创建记录集对象 
 
然后在站点也面中进行如下引用: 
 
但这样做的同时也有很大的负面影响,由于Application和session变量都只有在关闭网站的时候才释放占用的资源,所以session参数会浪费大量不必要内存,而且此时application变量成为服务器性能的瓶颈。 
解决方法:建立定义对象asp页面,在需要进行调用这些对象的页面上,引入这张asp页面。假设定义对象的asp页面名称为define.asp,则只要在对应asp页面中加入以下语句就能引入该页面。 
 
在进行页面引进时,最好在待引进的asp文件中不要包含语句。因为在asp文件中,只能有一句由@来定义的脚本解析语言。
8、安全防护 
asp提供了很好的代码保护机制,所有的asp代码都在服务器端执行而只返回给客户端代码执行结果。即便这样,在老版本的IIS中还可以在文件名后面家::$DATA来查看asp的源代码,这已经属于Web Server安全范畴不在本文讨论范围内。下面提出两点简单的安全注意事项。 
  虽然在asp中建议引入文件以inc作为扩展名,在这里仍建议以asp作为引文件的扩展名。当这些代码在安全机制不好的Web Server上运行时,只需在地址栏上输入引入文件的地址(inc为扩展名),就可以浏览该引入文件的内容,这是由于在Web Server上,如果没有定义好解析某类型(比如inc)的动态连接库时,该文件以源码方式显示。 
不要把数据库文件放在网站结构内部,这样,当恶意人士获取数据库路径后,就可以轻易获取该数据库,进而肆意更改数据库内容。比较好的做法是,为数据库建立DSN(Date Source Name),而在进行数据库访问时直接访问该DSN。

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

来源:http://www.tulaoshi.com/n/20160129/1510284.html

延伸阅读
标签: ASP
  foxty [原作]     近日一直在研究如何才能写出高小的分页算法,大概整理了一下,思路如下:       首先数据库里需要有一个自动编号字段(ID)。然后第一次访问的时候,取出所有记录,定制好每页的记录数PageSize,计算出页数,然后根据页数建立一个一维数组PageId(PageCount),PageId(0)保存记录...
标签: Web开发
这是我看完几个base64编码、解码函数后自己改写的。 因为,在中文操作系统的VBscript中,使用的是unicode字符集,所以 很多base64编码、解码函数在理论上是正确的,但实际不能运行! 文件名称base64test.asp % sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ...
标签: Web开发
置顶的帖子里有一个VBscript的代码用来将xmlHTTP返回值重编码,不过效率极其低下.....俺费了好大的力气,终于做了一个速度勉强让人满意的代码。不过水平所限还是不得不用了vbscript的chr函数用来将acsii转成unicode,不知道哪位大哥能想想办法? ps:算法优化真是个费脑筋的活。 -×-×-×-×-×-×-×-×-华丽的更新分割线-×-×-×-×-×-×...
标签: ASP
                 《 优化你的ASP程序 》       如果你是一位ASP爱好者,你一定想过ASP的执行效率如何?大家都知道ASP效率和CGI的比,在访问量少的时候,它们是不相上下的,有时可能CGI还会好点(我觉得这主要和NT系统运行效率有关),但在访问量大的时候,ASP要比...
标签: windows 操作系统
Windows XP操作系统中,有一些功能我们可能用不着,但他占用了我们的系统资源,同时有些功能可能因为设置不当,也可能造成系统资源的浪费,本文介绍了四个小技巧,对你提高Windows XP操作系统运行速度有一定的帮助。 一、修改预读设置以提高速度 Win XP使用预读设置这一新技术,以提高系统速度。如果你拥有PIII 800, 512M内...

经验教程

491

收藏

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