最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

HTC技术在web开发中的应用

IT圈 admin 31浏览 0评论

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] 

?、盖 嘉 栗 

嚣套 窑盖蓑 妻荔鬈易 

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论