日期:2008-09-03  浏览次数:20810 次

使用过程和函数对于代码的组织和维护有着很大的好处,特别是页面中部分代码需要多次使用的时候。不过此时为了完成相同的处理任务要多出一次函数(或过程)的调用,这是它的缺点。从理论上看,函数块内的变量具有更好的效率。下面我们来看看这两个问题的测试结果。


8.1 将Response.Write语句移入子过程

在这个测试中,我们只把Response.Write语句放到了子过程里面。
...
CALL writeTable()

SUB writeTable()
     Response.Write("< HTML >" & _
          "< head >" & _
...
          "< tr >< td >< b >EMail:< /b >< /td >< td >" & EMail & "< /td >< /tr >" & _
          "< tr >< td >< b >Birth Date:< /b >< /td >< td >" & BirthDate & "< /td >< /tr >" & _
          "< /table >" & _
          "< /body >" & _
          "< /HTML >")
END SUB

/app2/function1.ASP片断

基 准 = 5.57 毫秒/页
响应时间 = 6.02 毫秒/页
差 额 = +0.45 毫秒 (增加8.1%)




和预期的一样,子过程调用增加了额外的页面处理负担。

8.2 将所有脚本移入子过程

在这个测试中,Response.Write和所有的变量声明都移到了子过程里面。
< % OPTION EXPLICIT
CALL writeTable()

SUB writeTable()
     Dim FirstName
     ...
     Dim BirthDate
     FirstName = "John"
     ...
     BirthDate = "1/1/1950"
     Response.Write("< HTML >" & _
          "< head >" & _
          "     < title >Response Test< /title >" & _
          "< /head >" & _
          "< body >" & _
          "< h1 >Response Test< /h1 >" & _
          "< table >" & _
       &nbs