今天在论坛上面看到有些兄弟不知道htc是什么东西。小生在这里稍微说一下。
从5.5版本开始,internet explorer(ie)开始支持web 行为的概念。这些行为是由后缀名为.htc的脚本文件描述的,它们定义了一套方法和属性,程序员几乎可以把这些方法和属性应用到html页面上的任何元素上去。web 行为是非常伟大的因为它们允许程序员把自定义的功能“连接”到现有的元素和控件,而不是必须让用户下载二进制文件(例如activex 控件)来完成这个功能。web 行为还是推荐的扩展ie对象模型和控件集的方法。微软在它的开发者站点上的dhtml 行为库栏目里提供了几个定制的web行为。我会在本文中讨论一个比较新的web 行为:webservice行为。
web 服务是通过一个开放的简单对象访问协议(soap)来传递参数和接收返回值,以便在web上提供接口无关的软件服务的方法。在internet上有许多例子和文章帮助你创建web 服务并从传统的基于窗口表单的应用程序或者在服务器端来使用这些web 服务,但是也可以使用webservice 行为也可以在客户浏览器上使用web 服务。
从客户浏览器调用一个web 服务的好处包括能够得到服务器更快的响应时间,结果是生成交互能力更强的页面并让用户用起来更高兴。与传统的将表单发回服务器然后接收一个新的页面不同的是(这个过程包括重新下载图片和其它的内容),webservice行为使用xmlhttp在后台只发送和接收与事务处理过程相关的内容,然后这些内容又可以通过dhtml和脚本进行显示。
我所知道的目前支持web 行为的唯一一个浏览器是ie;开发者们知道避免使用只能在ie上使用的功能。但是w3c在工作草案里有这个css的扩展以作为未来的标准。
如果你决定现在就使用web 行为,你可以使用下面的javascript函数来检测客户端是否支持这个功能:
代码如下:
function canusebehaviors() {
var ua = window.navigator.useragent;
var msiepos = ua.indexof('msie');
var msiever = 0;
var behaviorsavailable = false;
var ihandle = 0;
if (msiepos >= 0) {
msiemajorver = parseint(ua.charat(msiepos + 5));
msieminorver = parseint(ua.charat(msiepos + 7));
if (msiemajorver >= 5) {
if (((msiemajorver == 5) && (msieminorver >= 5)) ||
(msiemajorver > 5)) {
behaviorsavailable = true;
}
}
}
return behaviorsavailable;
}
使用上面的函数,你可以在运行时确定是否能够使用webservice 行为来调用web 服务并使用ie的dhtml功能来显示结果或者是把这个表单发送给服务器让服务器来完成必要的操作,然后再次生成一个完整的页面。使用css语法来为一个元素添加webservice行为不会影响不支持特定css属性的浏览器。
微软提供了一个很好的参考,程序员可以用它更好的熟悉从客户端访问web 服务。开发者还可以在微软的站点上找到必要的html 组件(*.htc)文件。
有了客户端工具包中的webservice行为,开发者们可以为web 消费者创建更丰富更具交互性的页面,它们与使用大型主机提供的web 服务或者基于表单窗口的应用程序的企业用户的功能是一样的。这将帮助消除冗余的代码并能通过为服务提供的特定功能提高响应时间来增强用户体验的快感。