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 & "st" END IF CASE "2" IF InStr(num,"12") THEN num = num & "th" ELSE num = num & "nd" END IF CASE "3" IF InStr(num,"13") THEN num = num & "th" ELSE num = num & "rd" END IF CASE "4" num = num & "th" CASE ELSE num = num & "th" END SELECT AddSuffix = num END FUNCTION %>
6、使用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 %>
7、避免在使用global.asa文件中进行对象定义
由于global.asa文件中的内容可以为站点内所有文件引用,无疑,在global.asa文件中进行对象定义可以省去很多重复工作。比如在global.asa中的application_onstart函数中进行如下定义: <%SUB application_onstart set application("theCONN")=server.createobject("adodb.connection") 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文件中,只能有一句由@来定义的脚本解析语言。 8、安全防护 上一页 [1] [2] [3] 下一页 |