<!--#include file="conn.asp"-->
那么上面是省去的什么重复?每次数据库连接的重复。这是对于通用的某些共用的代码的防重复。接着来看,如果说我要这个页面显示5条,那个页面显示6条,又该如何?很显然,这只能是对当前页中的SQL语句进行简单的修改,比如原来是 top 5 的修改为 top 6。
OK,继续看,是不是还有重复?有,除了SQL查询定义的不同,其他的都是重复。
于是,继续想办法:可不可以自己来定义提取的条数?就是我想提取几条就几条,但程序只需要写一个。那么这时候,函数的就派上用场了啊。比如我定义这样的函数:
Function topnews(tnum) Set rs = Server.CreateObject ("ADODB.Recordset") sql = "Select top "&tnum&" * from [news] order by n_id desc" rs.Open sql,conn,1,1 do while not rs.eof response.write rs("n_title") rs.movenext loop rs.close set rs=nothing End Function |
那么,就可以使用 topnews(5) 或者 topnews(6) 来完成需要了
……咋一看,似乎ASP用上函数这就算最终的完成了。因为主要的程序功能做成了函数模块,需要在前台页面使用该功能时,直接调用一下,必要时修改下函数参数值就是一个完美的结局/。
那么,ASP中怎么又引入了类?这类是什么?又是如何应用?
在ASP的脚本语言中,VBscript里有个Class关键字,用它可来声明一个自定义类。比如
Class name
statements
End Class
这里statements里可以声明公有或私有的成员,包括函数、成员和属性。
而Javascript则是用一个函数来“声明”类,然后在该函数里通过 this.prototype 定义属性,this.func 定义方法。这里有一篇看看。
哪个简单拣哪个。在定义了 类也就是 class 的名称 name 后,这里面可以做些什么东西呢?
第一个。MSDN文档:在 Visual Basic 6.0 中,在创建和毁坏类模块时,类模块使用 Initialize 和 Terminate 事件来执行所有必要的操作。当在 New 语句之后第一次遇到对象时,会引发 Initialize 事件,当释放对象的最后一个引用时,会立即引发 Terminate 事件。但是,可在执行期间随时直接调用这些事件方法。
所以经常会看到这样的例子:
Class cnbruce '声明一个名为cnbruce的类 Private cnrose Private Sub Class_Initialize cnrose="My Name is cnrose." End Sub Private Sub Class_Terminate() End Sub End Class |
喏,这也就是一个初始化。
此外,asp类中具有let和get方法。比如在 以上代码的Class cnbruce ... End Class之间加入: