ASP模板引擎
尽管ASP在现在的实际开发中已经很少了,但是学校里的一些网站制作还是仍然停留在使用ASP的层面上,特别是当前情况下,我的很多同学的毕业设计都是与ASP有关的,这里介绍下ASP模板引擎,也是我才通过网络学习的知识。 所谓模板,在设计模式里面应该是(抱歉,我没学习过设计模式)将表现层和逻辑层相结合的一种技术,在WEB开发领域,主要用于前后台设计相分离,这样前端开发人员使用简单的语句便可以嵌入后台复杂的逻辑结构,将需要显示的内容展示在页面上,而不需要因为显示的问题与后台开发人员频繁的联系。通俗一点的距离,平常我们见到的一些网站的更换风格就是使用的模板技术实现的,如Discuz!,WordPress,PhpWind等。PHP,JAVA,PYTHON的开发应用模板十分广泛,ASP在这方面相形见绌,尽管如此,SourceForge.net还是有开源的模板引擎,这里介绍CSDN上推荐的ASP Tango和ASP Template。 ASP Tango ASP-Tango is a pure ASP Template Engine that provides powerfule, extensible and easy to use separation of HTML presentation and business logic. * * * DISCONTINUED * * * KudzuASP is the new Classic ASP project to replace ASP-Tango. http://sourceforge.net/projects/asptango ASP Template ASP Template is an ASP/ASPX templating library [...]
ASP程序的性能优化
对于网络应用程序来说,性能是每个开发人员都应该关心的问题。性能的优劣直接影响网站能够正常运行,在网站访问量很大的时,如果网应用程序的性能欠佳,就会导致用户访问超时或者打不开页面,更严重时还会让整个服务器崩溃。本讲介绍一些关于优化ASP程序性能的基本知识。 本讲要点: *ASP程序的代码优化 *数据库优化 *网页优化 1 ASP程序的代码优化 在使用代码编写应用程序的过程中,同一个功能可以使用不同的函数、不同的语法实现。但是不同的代码页会造成程序运行的效率不同,代码优化就是找到并消灭那些影响程序运行速度的代码。 1.1尽量减少对Session对象和Application对象的使用 虽然Session对象和Application对象对ASP变成具有很重要的作用,但是由于大量使用这两个对象会增加系统内存的开销,因此如果不合理地使用Session对象和Application对象就会降低系统的性能。 没有固定的模式规定什么数据应该使用Session对象存储,什么数据应该使用Application对象存储,存储数据的对象要根据实际情况确定。通常情况下,Session对象中的数据是每个用户使用的状态信息,如用户名。Application对象中的数据是所有用户的公共信息,只有所有用户都经常访问的信息才会存储到Application对象中,如数据库的连接。 1.2 及时关闭不使用的对象 不仅是ASP程序,所有应用程序都应该及时关闭不使用的对象。如果不及时关闭没有使用的对象,大量的对象就会长时间占用系统资源,导致系统运行缓慢。只有及时关闭不使用的对象才能回收系统分配出去的资源,提高系统的性能。 使用Session对象时,如果用户30 min(分钟)内没有任何操作,系统就会自动触发Session_OnEnd事件关闭Session对象。但是假如有大量的用户频繁的读取服务器,服务器在这段时间内仍然会保持那些已经没有用的Session对象。大量的Session对象会增加系统内存的开销,如果不及时关闭使用完的Session对象,就会降低系统的性能。 另外连接数据库也是一项非常耗费系统资源的工作。对于数据库的操作最佳方案是,尽量在一次数据库连接中处理所有的操作。使用完的Recordset对象要马上赋Nothing值,将不用的数据库连接立即关闭。 1.3合理使用Include文件 在ASP文件中,可以使用语句形式包含其它的文件。这些Include文件也是ASP程序,它把自己的公共函数放到包含它的文件中,供包含它的文件调用。 因为服务器端应用程序会对文件进行预编译,所以建议不要在一个文件中包含过多的Include文件。如果一个文件包含上百个Include文件,但它只使用其中的一个或几个函数,就会造成大量的函数被加载而未被使用,浪费系统的资源。 因此在一个文件中尽可能只放入相同类型的Include文件,这样既有利于函数的查找,又可以减小Include文件的大小。 1.4尽量使用系统函数代替自己编写的函数 想要实现一个功能时,不要急于编写代码,应该先看看开发平台是否又现成的函数能够实现想要的功能。如果有可以使用的函数,不仅免去了开发的烦恼,节省了开发时间。更重要的是,在大多数的情况下系统提供的函数比自己编写的函数性能好。 例如,使用VBScript脚本语言,分割一个有规律的字符串(“ggg,sss,aaa,bbb,mmm”),如果使用自己编写的函数既浪费时间,运行速度又慢。而使用系统提供的分割字符串函数split可以直接完成这个功能。 1.5减少动态数组的使用 如果读者学习过数据结构,一定会知道在动态数组中查找一个元素(即取动态数组中一个元素的值)要比在静态数组中慢。虽然在某些情况下动态数组是必不可少的,例如,对于数组存储的数据条数不确定的情况下,或是对数组中的元素访问量不是很大时,应该使用动态数组。但是对于存储的数据条数相对稳定,或时经常访问数组中的元素时,还是应该使用静态数组。 1.6养成提前声明变量的习惯 在脚本语言中,允许不声明变量而直接使用它。虽然这样编写代码会很方便,但是这是一种不好的习惯。在应用程序使用变量时,解释器会对变量进行处理。如果提前声明变量,会加快解释器执行的解释时间。如果变量不提前声明,不仅使程序代码难以阅读,还会使程序的执行效率大大降低。 如果读者还没有养成提前声明变量的习惯,建议在每一个ASP文件的开头加上”Option Explicit”语句。它可以在当前的文件中,强制要求显示声明代码中的所有变量,如果存在没有声明的变量,它就会报错。 1.7减少Response.writ的使用 下面的量个实例完成了相同的页面输出功能,但是通过运行可以知道第一个实例比第二个实例的速度要快。这是因为第二个实例在执行时增加了服务器的解释时间,因此降低了它的性能。 实例一: <% Dim ok if ok=1then %>Hello World! <%end if%> 实例二: <% Response.write “” Response.write “” Dim ok If ok =1 then Response.write [...]

