实现web页面的局部刷新

该博客介绍了一种利用JavaScript和Web服务实现在网页上实时显示服务器时间的方法,通过onload事件触发Init函数,每隔1秒调用GetServerTime获取服务器时间。由于DHTML的安全限制,行为只能访问同域的Web服务,并且支持的基本类型有限,不包括复杂类型如dataset。此技术用于实现页面的局部更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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得复杂类型就不支持了

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值