实现web页面的局部刷新

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

服务器的回传会引发整个页面的刷新,怎么样只让它刷新局部呢,前几天看见书上有讲用

WebService行为的,今天试了试,效果还不错

在web目录中需要一个文件webservice.htc

可以到这里下载: http://msdn.microsoft.com/workshop/author/webservice/webservice.htc

见一个WebService 文件名为Service1.asmx:

[WebService(Namespace="http://localhost/BehaviorService/")]

public class TestService : System.Web.Services.WebService

{

/// <summary>

/// 返回服务器的时间

/// </summary>

[WebMethod]

public string GetServerTime()

{

return DateTime.Now.ToString();

}

}

在同级目录下进一个html文件,内容如下:

<script>

var intCallId = 0;

function Init()

{

GetServerTime();

setInterval("GetServerTime()",1000);

}

function GetServerTime()

{

Service.useService("Service1.asmx?WSDL","TestService");

intCallId = Service.TestService.callService("GetServerTime");

}

function service_result()

{

if (event.result.error)

{

showresult.innerText = event.result.errorDetail.string;

}

else

{

showresult.innerText = event.result.value;

}

}

</script>

<html>

<body onload="Init();">

<div id="Service" style="behavior:url(webservice.htc)" onresult="service_result()"></div>

<span id=showresult></span>

</body>

</html>

我查看http://localhost/BehaviorService/test1.htm就可以看到一个服务器上的时间了

而且是会动的,通过这种方法就可以实现页面的局部刷新了

有两点限制:

1.行为只能用域内的web服务,因为DHTML内置的安全限制造成的

2.通过的这种方式的访问的类型会被限制,行为支持.net的基本类型和它们的数组

如:dataset,datatable得复杂类型就不支持了

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航