Username: Password:

XML在ASP中的一些运用
来源:作者: 发布时间:2007-12-19 10:03:55

翻译得很蹩脚,望大家谅解,呵呵。
Scriptlets - 一个更好的组织您的ASP代码的方法

使用可扩展标志语言(XML)编写的脚本和组件和.XML被用来定义对象,方法,属性等等。
同时脚本还提供函数。脚本语言能够是javascript, vbscript等等。运用在网站的运用程式和网站的
普通例子,现在都能够被转换成scriptlets. 只要使用scriptlets 来写组件,
他们能够再被从新使用在网站或则运用程式各部分,既能够使用在服务端(例如ASP代码)
也能够被使用在客户端(例如浏览器)

这里将集中讨论服务端的用来组件ASP代码的Scriptlets。
早些时候,ASP研发者习惯写include文档。用来做公共的服务端例行程式,
还用在他们的网站运用程式中。从功能上说,include文档被局限在仅仅是在页面中引用。
完成传递参数的功能。
现在同样的公共例行程式能够中添加了scriptlet方法和并且有助和在运用程式中使用组件。
这个方法现在很普遍的运用在网站运用程式中,能够被运行在同一个服务器上的运用程式重用。
这个方法使得从数据库中获取(pull-down)数据将变得很通俗化。

例子:建立scriptlet方法和属性,使得很通俗的从数据库中获取数据。
并且使得运行在同一个服务器上任何的运用程式使用这个同样的scriptlet,而不用重新写代码了。

代码如下:
scriptlet文档名为scp_query2list.sct



description="scp_query2list"
progid="scpquery2list.Scriptlet"
version="1.00"
classid="{e32d2a70-4e11-11d3-a9f0-0080c8034244}"
>












其中在scriptlets中使用的各种元素的具体说明能够在http://msdn.microsoft.com/scripting处找到。
下面是怎么具体调用scriptlets的代码:(只要是在同一个服务器上注册了scriptlets的运用程式,都能够使用这段代码)
query2list.asp 文档:
<%@ Language=VBScript %>
<%

Option Explicit

Dim objConn
Dim dbPath
Dim sql
Dim objScpQuery2list

Set objConn = Server.CreateObject ("ADODB.Connection")
dbPath="DBQ=" & Server.MapPath("techpapers_test.mdb")

objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & dbPath

’--- query required for pull down
sql = "select AuthorFirst from Papers"
Set objScpQuery2list = Server.CreateObject ("scpquery2list.Scriptlet")
%>










<%
objConn.Close
Set objConn = nothing
Set objScpQuery2list = nothing
%>

出现的问题:
第一次使用scriptlets有可能会出现这样的问题,就是内存浪费现象,改进方法如下:
将ASP对象传递给scriptlets,而代替使用ASP接口。(就是不使用 申明)
testscp.sct:



description="testscp"
progid="testscp.Scriptlet"
version="1.00"
classid="{78a33aa0-335d-11d3-a9a9-0080c8034244}"
>























传递ASP对象的ASP程式如下:
testscp.asp代码

<%
Set scrip=Server.CreateObject("testscp.Scriptlet")
if Err then
Response.Write "
Error:" & Err.Number
Response.Write "
" & Err.Description
Response.Write "
" & Err.Source
Response.End
End If

Response.Write "
cnnState=" & scrip.cnnState
if Err then
Response.Write "
Error:" & Err.Number
Response.Write "
" & Err.Description
Response.Write "
" & Err.Source
Response.End
End If

Response.Write "
Connecting..."
scrip.ASPConnect Server, Application, Session, Request, Response
if Err then
Response.Write "
Error" & Err.Number
Response.Write "
" & Err.Description
Response.Write "
" & Err.Source
Response.End
End If

Response.Write "
cnnState=" & scrip.cnnState & "
"
Response.Write "
Testing ...Write
"

scrip.TestWriteLine ""
scrip.TestWrite "This is the first part "
scrip.TestWrite "and this is the second."

Response.Write "
Testing ...WriteLine
"
scrip.TestWriteLine "This is text with a line break."
scrip.TestWriteLine "And so is this."
%>
上面的代码没有包括, 但是仍然能够访问ASP对象。
因为他们是被当成对象传递给scriptlet.
下面再给出一个很常用的取时间的狸子:

scp_dmy.sct





description="scp_dmy"
progid="scpdmy.Scriptlet"
version="1.00"
classid="{bba68a50-3ae0-11d3-a9c0-0080c8034244}"
>

















Dmy_check.asp: 文档
<%
Set scrip = Server.CreateObject("scp_dmy.Scriptlet")
%>






从 :









到 :








<%
Set scrip = nothing
%>



要记住的是,现在服务器上任何的程式都能够使用这个scriptlet,这能够减少include文档的使用。
上面的代码还能够增加一些功能,例如使用不同的格式显示日期。
也就是说假如一个运用程式需要显示dd-mm-yyyy的日期格式,能够在scriptlet中调用各自的函数。

最后,使用scriptlet的更有一个好处就是,他不象真正的ASP组件,因为真正的ASP组件在注册和取消注册的
时候都需要您重新启动IIS,而使用scriptlet是无需这么干的,仅仅是几句代码而已。

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅