2024年3月18日发(作者:宰父晓燕)
维普资讯
中国科技信息2007年第18期 CHINA SCIENCE A№TECI' ̄OLOGY INFORMATION Sep.2007
HTC技术在web开发中的应用
朱永生 南京信息工程大学网络信息中心 21 0044
警 露一 | _|_
在脚本中使用,所有方法和属性均可在脚
本中动态操作。
可以使用HTC实现以下行为:
3.凋试功能较弱。
HTc组件封装了HTML内容,在内部提供了一
个简单机制以在脚本中实现DHTML行为,它
包括脚本和一系列HTc自定义说明元素,这
些元素定义了H TML组件的属性、方法、事
件等,所有HTc元素可以作为对象通过lD属
性在脚本中使用,所有方法和属性均可在脚
缸中动态操作并可以插入到别的H TML文件
中。
4.编译错误较难发现。
5.tITC的可视化程度低(所见即
1 .设定属性和方法。通过
“PROPERTY”和“METHOD”元素
定义。
所得的功能较羞),影响开发效率。
6.客户端的负载较传统的模式要
高。
7.对客户端的浏览器版本及运行环
境要求比较规范。
2 .设置自定义事件。通过
{ _| _ li
“E V E N T”元素实现,用该元素的
“f i r e()”方法释放事件,通过
createEventObject()”方法设置事件环
“
二应用
1.HTC的简单示例
组件定义:
H丁e;WEB;组件
境。
3.使用ttTC的“element”对象,可
引言
用ASP.NET开发传统的B/S系统,
既有优点,也存在着显著的问题。主要
以访问该HTML页包含的HTC控件,并
且得到一个附加行为的对象,使用该对象,
HTC可以访问其对象模型(属性、方法、
事件)。
组件的名字是由HTC文档里定义的
C OMPONENT元素属性tagName决定
的。HTML组件的定义就是自定义标签
行为的定义。该行为包括一个属性,一
个自定义事件,一个标准事件和一个方
法。
<P U B L I C:C O M P O N E N T
 ̄gName=”MyTag。。>
4.收取通知,使用“ATTA C H”
有1.界面频繁刷新问题;2.表现层的代码
元素实现。浏览器不仅可以通知HTC标
不易复用;3.服务器几乎要处理所有业务
准的DHTML事件,还可以通知HTC的
逻辑和动态交互,经常执行重复的操
两种特殊事件:oncontentready事件和
作,负载过重。为解决这些问题,可以
在web开发中使用HTC技术,将客户端
ondocumentready事件。
5.定义标记和命名空间。HTC的
的脚本以“类”或“可复用的组件”的
基础是自定义标记,要在页面自定义标
方式存在。即将传统的面向过程的
记,必须为该标记提供命名空间,要使
J a v a S C r i P t 转变为面向对象的
用该标记必须在该标记前加上正确的XML
JavaScript,将原子型的DHTML内容转
命名空间前缀。
变为组件模式的HTC。
使用HTC的优点:
一
<public:defaults viewLinkContent/>
<PUBLIC:PR0PERTY name=”src”
put=”putxnztsrc”get=”getxmlsrc’ />
<P U B L I C:A T T A C H
event=”oncontentready onevent= Init(1
/>
<P U B L I C:M E T H O D
基本概念
1.不用频繁刷新页面。
2.页面状态保持较为简单。
3.模块的粒子度,灵活性,复用性将大
大增强,且页面的风格也比较容易统
0
HTC(HTML component)是IE5.0的
主要扩展之一,是自封闭对象。HTC本
质就是一段包含脚本和自定义元素的
H T M L内容,因此可以插入到别的
HTML文件中,实现组件的重复复用。
在HTML组件出现以前,在HMTL文
档中使用白定义控件唯一的办法就是使用
微软的ACT1VEX控件,ACTIVEX控件
的一个缺点就是使用前用户必须下载并且
安装,而对于DHTML的作者来说tITML
控件更具吸引力,因为他们可以使用他们
n a m e=’ c a l l M e t h O d”
intemalname=”MyTagcallMethod”/>
</PUBLIC:COMP0NENT>
<B>插入一个HTC</B>
<SCRIPT language=”JScript 。>
yaK g xmlsrc;
4.分层结构明确,模块(类)之间的
依赖性清晰。
5.页面扩展容易。
6.服务器负载、网络流量能大幅度
减少。
function Init 0
(
alert(”初女台化HTC,网址是
缺点在于:
1 .无法处理
Failover。
熟悉的语言开发自己的组件。HTC提供了
个简单机制以在脚本中实现DI ITMI 行
为。一个ttTC文件以“.htc”为后缀,它
包括脚本和一一系列tiTC自定义说明元素,
一
筢末蓦
壁 瀵
最患 翳
 ̄ETIL£掰 =_r
通翌毫筵冀攀峰簿
筑简攀
2.对开发人员的客
^l r秭瓣耀黪
菝№ 请葛 种整磐鼗
妻懊臻 §tM
骥露 i朔 c“k挺襄
矗 State
户端的技术功底要求较
高,需要了解多种语
言。
纂羲 重 鼹缀簿 孵£懿
夏蓊扩曩 窨霸
这些元素定义了HTMI 组件的属性、方
法、事件等,所有HTC元素通过ID臂胜
e 户鼗黪
车_:=差
图1 HTC和ASP NET的实现比较
134
维普资讯
+g xmlsrc);
在主页面引用Session.is
window.Session=new 0bject
j
function putxmlsrc(value) 0;
在Htc中引用HtcSession.jS
function clearSession()
』
1
{
g xmlsrc value;
l
J
function MyTagcallMethod()
f
window.Session=
1
new Object();
t
J
alert( callMethod被调用”);
:
</9Cljpt><B>一个ttTC示例d/B>
<SCRIPT language”JScript ’>
function getSession()
J
l
return window.
:
function Init 0
I
Session}
l
J
alert(“这是一个HTC测试”);
}</SCRIPT>
4.实现客户端和服务端的数据同步
机制,减少客户端的数据丢失率,避免
对服务器作重复请求。所有类在客户端
实现cache,重启IE或重启系统皆不必重
新从服务器加载类资源。采用RMI/RPC
方式,实现客户端的jS对象能远程调用服
务器端的一个对象(或应用)的方法,
并能保存其状态和数据。对开发者来
讲,这种调用机制是透明的。
组件的调用:
<HTMI xiTllns:MyCom>
<HEAD>
< ? I M P O R T
N A M E S P A C E=”M Y C O m”
IMPLEMENTATION--”MyTag.htc />
f6](美)瞰矧粥 . 一赵海译 ̄ASP.NET
。 。
we 应用程宁开发 维_北京 清华大学
岳雇在i砻 涩囊 .|l |。
</HEAD>
<BODY><MyC Om:MYTag
id”testMyTag”SFC”www.baidu.corn”>
使用HT C技术实现代码和数据的分
离。所有涉及U I的页面均用静态页面形
</MyCom:MyTag></BODY>
<div onclick=”testMyTag.callMethod
()”>调用MyTag的callMethod</div>
</HTAⅡ>
朱永生 毕业于南京大学软件学院0软件工程
硕士礅受责 商级敬梅开发就职于南京
式存在(减轻server负载,且这些静态资
信息工程大学网络信息中心_助哩工程师一
源会被IE自动cache,下次不会被重复下
载),所有动态交互部分的数据,除了
以RMI的方式返回给客户端以外,皆以
XML形式返回,并在客户端建立cache
机制。
5.用“模式/同步”的操作方式,
2.在HTC中如何实现消息传递
在HTC中通过“EVENT”元素实
现自定义事件,用该元素的“fire()”方
法释放事件,通过“createEventObj ect
()”方法设置事件环境。如:
var oEvent=createEventObject();/
/创建事件对象
evtPageChange.ifre(oEvent);//将事
件触发到容器页面
在HTML中通过引用Event Name的
值触发事件:< MYC Om:MYT ag
i d=”t a’b S A C C t I n f o”
onSelectedIndexChange”selectPageIndex
代替传统中“非模式/异步”的操作方
式,从而约束用户的操作步骤,使其规范
化。
;
说明:浏览器很多操作默认都是异
步/非模式方式的(比如:form的提交,
window.open,等等)这样可以实现多线
程请求数据,比较快,但有时候会出现数
据的不同步现象。比如:某个操作要等
数据提交成功后执行,我们希望能有一
个阻塞,待执行完提交后,接下来执行
后面的操作,否则容易出现业务上的逻
辑错误。解决办法就是对数据请求或发
送,用XMLHTTP结合XMLDOM的同
步方式调用, 对窗体模块用
showModalDialog方式调用。
();”>。
3.在HTC中实现数据共享
采用类似ASP.NET中Session技术。
即:存在一个全局对象,所有应用页面
都共享该对象,并能通过这个对象交换
数据。该对象的生存期和整个应用保持
致。
一
三结束语
通过以上对HTC的简单介绍,可以
Session
.
js I
js]
?、盖 嘉 栗
嚣套 窑盖蓑 妻荔鬈易
2024年3月18日发(作者:宰父晓燕)
维普资讯
中国科技信息2007年第18期 CHINA SCIENCE A№TECI' ̄OLOGY INFORMATION Sep.2007
HTC技术在web开发中的应用
朱永生 南京信息工程大学网络信息中心 21 0044
警 露一 | _|_
在脚本中使用,所有方法和属性均可在脚
本中动态操作。
可以使用HTC实现以下行为:
3.凋试功能较弱。
HTc组件封装了HTML内容,在内部提供了一
个简单机制以在脚本中实现DHTML行为,它
包括脚本和一系列HTc自定义说明元素,这
些元素定义了H TML组件的属性、方法、事
件等,所有HTc元素可以作为对象通过lD属
性在脚本中使用,所有方法和属性均可在脚
缸中动态操作并可以插入到别的H TML文件
中。
4.编译错误较难发现。
5.tITC的可视化程度低(所见即
1 .设定属性和方法。通过
“PROPERTY”和“METHOD”元素
定义。
所得的功能较羞),影响开发效率。
6.客户端的负载较传统的模式要
高。
7.对客户端的浏览器版本及运行环
境要求比较规范。
2 .设置自定义事件。通过
{ _| _ li
“E V E N T”元素实现,用该元素的
“f i r e()”方法释放事件,通过
createEventObject()”方法设置事件环
“
二应用
1.HTC的简单示例
组件定义:
H丁e;WEB;组件
境。
3.使用ttTC的“element”对象,可
引言
用ASP.NET开发传统的B/S系统,
既有优点,也存在着显著的问题。主要
以访问该HTML页包含的HTC控件,并
且得到一个附加行为的对象,使用该对象,
HTC可以访问其对象模型(属性、方法、
事件)。
组件的名字是由HTC文档里定义的
C OMPONENT元素属性tagName决定
的。HTML组件的定义就是自定义标签
行为的定义。该行为包括一个属性,一
个自定义事件,一个标准事件和一个方
法。
<P U B L I C:C O M P O N E N T
 ̄gName=”MyTag。。>
4.收取通知,使用“ATTA C H”
有1.界面频繁刷新问题;2.表现层的代码
元素实现。浏览器不仅可以通知HTC标
不易复用;3.服务器几乎要处理所有业务
准的DHTML事件,还可以通知HTC的
逻辑和动态交互,经常执行重复的操
两种特殊事件:oncontentready事件和
作,负载过重。为解决这些问题,可以
在web开发中使用HTC技术,将客户端
ondocumentready事件。
5.定义标记和命名空间。HTC的
的脚本以“类”或“可复用的组件”的
基础是自定义标记,要在页面自定义标
方式存在。即将传统的面向过程的
记,必须为该标记提供命名空间,要使
J a v a S C r i P t 转变为面向对象的
用该标记必须在该标记前加上正确的XML
JavaScript,将原子型的DHTML内容转
命名空间前缀。
变为组件模式的HTC。
使用HTC的优点:
一
<public:defaults viewLinkContent/>
<PUBLIC:PR0PERTY name=”src”
put=”putxnztsrc”get=”getxmlsrc’ />
<P U B L I C:A T T A C H
event=”oncontentready onevent= Init(1
/>
<P U B L I C:M E T H O D
基本概念
1.不用频繁刷新页面。
2.页面状态保持较为简单。
3.模块的粒子度,灵活性,复用性将大
大增强,且页面的风格也比较容易统
0
HTC(HTML component)是IE5.0的
主要扩展之一,是自封闭对象。HTC本
质就是一段包含脚本和自定义元素的
H T M L内容,因此可以插入到别的
HTML文件中,实现组件的重复复用。
在HTML组件出现以前,在HMTL文
档中使用白定义控件唯一的办法就是使用
微软的ACT1VEX控件,ACTIVEX控件
的一个缺点就是使用前用户必须下载并且
安装,而对于DHTML的作者来说tITML
控件更具吸引力,因为他们可以使用他们
n a m e=’ c a l l M e t h O d”
intemalname=”MyTagcallMethod”/>
</PUBLIC:COMP0NENT>
<B>插入一个HTC</B>
<SCRIPT language=”JScript 。>
yaK g xmlsrc;
4.分层结构明确,模块(类)之间的
依赖性清晰。
5.页面扩展容易。
6.服务器负载、网络流量能大幅度
减少。
function Init 0
(
alert(”初女台化HTC,网址是
缺点在于:
1 .无法处理
Failover。
熟悉的语言开发自己的组件。HTC提供了
个简单机制以在脚本中实现DI ITMI 行
为。一个ttTC文件以“.htc”为后缀,它
包括脚本和一一系列tiTC自定义说明元素,
一
筢末蓦
壁 瀵
最患 翳
 ̄ETIL£掰 =_r
通翌毫筵冀攀峰簿
筑简攀
2.对开发人员的客
^l r秭瓣耀黪
菝№ 请葛 种整磐鼗
妻懊臻 §tM
骥露 i朔 c“k挺襄
矗 State
户端的技术功底要求较
高,需要了解多种语
言。
纂羲 重 鼹缀簿 孵£懿
夏蓊扩曩 窨霸
这些元素定义了HTMI 组件的属性、方
法、事件等,所有HTC元素通过ID臂胜
e 户鼗黪
车_:=差
图1 HTC和ASP NET的实现比较
134
维普资讯
+g xmlsrc);
在主页面引用Session.is
window.Session=new 0bject
j
function putxmlsrc(value) 0;
在Htc中引用HtcSession.jS
function clearSession()
』
1
{
g xmlsrc value;
l
J
function MyTagcallMethod()
f
window.Session=
1
new Object();
t
J
alert( callMethod被调用”);
:
</9Cljpt><B>一个ttTC示例d/B>
<SCRIPT language”JScript ’>
function getSession()
J
l
return window.
:
function Init 0
I
Session}
l
J
alert(“这是一个HTC测试”);
}</SCRIPT>
4.实现客户端和服务端的数据同步
机制,减少客户端的数据丢失率,避免
对服务器作重复请求。所有类在客户端
实现cache,重启IE或重启系统皆不必重
新从服务器加载类资源。采用RMI/RPC
方式,实现客户端的jS对象能远程调用服
务器端的一个对象(或应用)的方法,
并能保存其状态和数据。对开发者来
讲,这种调用机制是透明的。
组件的调用:
<HTMI xiTllns:MyCom>
<HEAD>
< ? I M P O R T
N A M E S P A C E=”M Y C O m”
IMPLEMENTATION--”MyTag.htc />
f6](美)瞰矧粥 . 一赵海译 ̄ASP.NET
。 。
we 应用程宁开发 维_北京 清华大学
岳雇在i砻 涩囊 .|l |。
</HEAD>
<BODY><MyC Om:MYTag
id”testMyTag”SFC”www.baidu.corn”>
使用HT C技术实现代码和数据的分
离。所有涉及U I的页面均用静态页面形
</MyCom:MyTag></BODY>
<div onclick=”testMyTag.callMethod
()”>调用MyTag的callMethod</div>
</HTAⅡ>
朱永生 毕业于南京大学软件学院0软件工程
硕士礅受责 商级敬梅开发就职于南京
式存在(减轻server负载,且这些静态资
信息工程大学网络信息中心_助哩工程师一
源会被IE自动cache,下次不会被重复下
载),所有动态交互部分的数据,除了
以RMI的方式返回给客户端以外,皆以
XML形式返回,并在客户端建立cache
机制。
5.用“模式/同步”的操作方式,
2.在HTC中如何实现消息传递
在HTC中通过“EVENT”元素实
现自定义事件,用该元素的“fire()”方
法释放事件,通过“createEventObj ect
()”方法设置事件环境。如:
var oEvent=createEventObject();/
/创建事件对象
evtPageChange.ifre(oEvent);//将事
件触发到容器页面
在HTML中通过引用Event Name的
值触发事件:< MYC Om:MYT ag
i d=”t a’b S A C C t I n f o”
onSelectedIndexChange”selectPageIndex
代替传统中“非模式/异步”的操作方
式,从而约束用户的操作步骤,使其规范
化。
;
说明:浏览器很多操作默认都是异
步/非模式方式的(比如:form的提交,
window.open,等等)这样可以实现多线
程请求数据,比较快,但有时候会出现数
据的不同步现象。比如:某个操作要等
数据提交成功后执行,我们希望能有一
个阻塞,待执行完提交后,接下来执行
后面的操作,否则容易出现业务上的逻
辑错误。解决办法就是对数据请求或发
送,用XMLHTTP结合XMLDOM的同
步方式调用, 对窗体模块用
showModalDialog方式调用。
();”>。
3.在HTC中实现数据共享
采用类似ASP.NET中Session技术。
即:存在一个全局对象,所有应用页面
都共享该对象,并能通过这个对象交换
数据。该对象的生存期和整个应用保持
致。
一
三结束语
通过以上对HTC的简单介绍,可以
Session
.
js I
js]
?、盖 嘉 栗
嚣套 窑盖蓑 妻荔鬈易