今天在論壇上面看到有些兄弟不知道HTC是什麼東西。小生在這裡稍微說一下。
從5.5版本開始,InternetExplorer(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函數來檢測客戶端是否支持這個功能:
代碼如下:
functioncanUseBehaviors(){
varua=window.navigator.userAgent;
varmsiePos=ua.indexOf('MSIE');
varmsieVer=0;
varbehaviorsAvailable=false;
variHandle=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;
}
}
}
returnbehaviorsAvailable;
}
使用上面的函數,你可以在運行時確定是否能夠使用WebService行為來調用Web服務並使用IE的DHTML功能來顯示結果或者是把這個表單發送給服務器讓服務器來完成必要的操作,然後再次生成一個完整的頁面。使用CSS語法來為一個元素添加WebService行為不會影響不支持特定CSS屬性的瀏覽器。