频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

实现web页面的局部刷新

来源: 作者: 出处:巧巧读书 2006-09-13 进入讨论组

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

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得复杂类型就不支持了请保留地址 http://www.qqread.com/dotnet/u236761.html进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章