1 使用webservice.htc的限制:
1>要想使用webservice行為組件訪問webservice必須保證包含組件的頁面和webservice在相同的域中,對於遠程服務可以建立本地的中轉代理webservice實現。
2>webservice行為組件支援.net中的基礎資料型別 (Elementary Data Type)及其數組,但是用於DataSet自訂類等不提供直接支援,如果使用可以做相應的轉化。
3>保證瀏覽器是IE5.0或者以上版本。
2 使用步驟
1>先從微軟網站上下載webservice.htc,
2>把webservice行為組件幫定到一個html元素。
3>用webservice行為組件的useService提供webservice的地址。
4>用webservice行為組件的callService訪問webmethod。
3 建立webservice,繼續使用以前的http://netboy.cnblogs.com/archive/2006/02/18/333260.html
4 webservice.htc之事件處理器
<html>
<title>
Call webservice with javascript and webservice.htc-事件處理器
</title>
<body onload="BindService('zzq')">
<script language="javascript">
function BindService(name){
//service.useService({webservice location},{webservice class name})
service.useService("http://localhost:1323/WebSite6/Service.asmx?WSDL","Service");
//service.Service.callService({webmethod},{input parameters needed})
service.Service.callService("SayHelloTo",name);
}
function ShowResult()
{
if (event.result.error)
{
document.write(event.result.errorDetail.string);
}
else
{
document.write(event.result.value);
}
}
</script>
<div id="service" style="behavior:url(webservice.htc)" onresult="ShowResult()"></div>
</body>
</html>
5 webservice.htc之回呼函數
<html>
<title>
Call webservice with javascript and webservice.htc-回呼函數
</title>
<body onload="BindService('zzq')">
<script language="javascript">
function BindService(name){
service.useService("http://localhost:1323/WebSite6/Service.asmx?WSDL","Service");
//callService({callBackFunction},{webmethod},{input parameters needed})
service.Service.callService(callback,"SayHelloTo",name);
}
function callback(res){
if (!res.error)
document.write(res.value);
}
</script>
<div id="service" style="behavior:url(webservice.htc)" onresult="ShowResult()"></div>
</body>
</html>
6 其他
使用webservice.htc返回的是標準的xml文檔,所以從理論上來說任何複雜的結果都可以通過解析xml文檔來得到需要的結果。對於從資料庫中返回的
記錄可以做轉化變成字串資料的形式返回,在js中可以直接擷取,var myArray=new Array(); myArray=result.value.剩下的你想怎麼做就怎麼做了。
使用webservice.htc+setInserval可以實現局部重新整理,也就是不用重新整理整個頁面就可以實現局部定時更新的效果。