一、在ASP编码时脚本中写了很多的注释,这会不会影响到服务器处理ASP网页的速度。
关于这个问题,笔者认为,在网页编码的过程中,为代码作注释是一个良好的习惯。那么,如果程序中的注释非常多的话,会不会影响网页的执行效率呢?经过一些技术人员测试,带有过多注释的ASP网页文件整体性能下降非常小,下降幅度几乎不会超过0.1%,这个性能下降幅度是很小的,也就是说在实际应用中基本上不会感觉到服务器的性能下降的。因此,为网页编码做好注释还是要继续做的。
二、制作ASP网页时,是否需要在每个ASP文件的开头加上<% @LANGUAGE=VBScript %>。
在ASP网页文件的开头使用<% @LANGUAGE=VBScript %>代码是用来通知服务器现在使用VBScript来编写程序,但是因为ASP的预设程序语言是VBScript,因此忽略这样的代码也可以正常运行。但是如果ASP程序的脚本语言是JavaScrip的,那么就需要在ASP网页文件的第一行指明所用的脚本语言,也就是需要加上<% @LANGUAGE=JavaScript %>。当然还有其他的脚本语言,在网页文件开头要加上什么样的脚本声明,需要看网页文件里的脚本类型。
三、有没有必要在每一个ASP网页文件中使用“OptionExplicit”来强制变量声明。
在实际的ASP网页编码中,VBScript变量的概念已经模糊了,允许不用定义变量而直接使用变量。尽管这样方便了用户的编码,但笔者认为这并不是一个好编码习惯,所带来的问题是容易造成程序错误,而且出现错误之后也不容易排查。如果变量比较多的话,就可能出现变量重复定义,从而引发程序错误。这种情况下,我们有必要在程序中使用 OptionExplicit 语句,这样在使用一个变量的时候,必须首先声明才能够使用,如果使用了没有经过声明的变量,运行时,程序就会出错。实践证明,ASP网页文件中使用“OptionExplicit”可使程序出错机会降到最小,并且会大大提升整体性能。所以,良好的编码习惯是,每一个网页文件种都要加上OptionExplicit声明。
四、使用数据库的Recordset对象和Command对象访问数据库的区别在哪里。
Recordset对象会要求数据库传送所有的数据,那么在数据量很大的时候就会造成网络的阻塞和数据库服务器的负荷过重,因此整体的执行效率会大大降低。而利用Command对象直接调用SQL语句,所执行的操作是在数据库服务器中进行的,显然会有很高的执行效率。特别是在服务器端执行创建完成的存储过程,可以降低网络流量,另外,由于事先进行了语法分析,也可以提高整体的执行效率。
五、ASP网页程序中定义的对象在使用完毕后应该怎么处理。
当一个对象在使用完毕后,首先要使用Close方法来释放对象所占用的系统资源,然后将对象设置为“nothing”值来释放对象所占用的内存空间,否则如果程序反复执行,则可能会因为对象太多而无法释放,结果导致WEB服务站点运行效率逐渐降低乃至崩溃。所以,对网页上定义的对象,应采取措施释放才对。相应的代码如下:
<%
对象.close
set 对象=nothing
%>
六、在ASP编码中,当变量的生命周期结束后,如何保存变量的内容呢。
任何导致网页结束的操作,比如当按下浏览器的“刷新”按钮,或者关闭了浏览器,再重新打开它,都会导致变量生命周期的结束。如果希望在网页结束执行时,还能够保存变量的内容,以备下一次执行时能够使用,那么我们可以借助Application对象来实现。比如可以利用Application对象来制作统计网站访问量的计数器。此外,也可以使用Session对象,同样可以在网页结束时将变量的内容存储下来。Application对象与Session对象可以帮我们把信息记录在服务器端,而Cookies对象则可以借助浏览器提供的Cookies功能将信息记录在客户端。Cookies是记录在浏览器客户端的信息,只有在浏览器开始浏览Server的某一网页,而Server尚未下载任何数据给浏览器之前,浏览器才能够与Server进行Cookies数据的交换。
七、在ASP页面中既可以使用VBScript,也可使用Jscript,如果一个网页中混合使用这两种脚本引擎好不好。
虽然在ASP页面中既可以使用VBScript,也可以使用JScript,也可以同时使用这两种脚本。但是在同一个页面上同时使用JScript和VBScript这两种脚本,则是不可取的。因为这会让服务器必须实例化并尝试缓存两个(而不是一个)脚本引擎,这在一定程度上增加了系统负担,而且,这样的网页程序可维护性也不太好,会让代码阅读者误读,从而出现差错。因此,从性能上和可维护性方面来考虑,我们不应在同一页面中混用多种脚本引擎。