如何实现网页局部刷新
如何实现网页局部刷新,我的网站有一些信息是即时信息,需要局部刷新,最好以像QQ聊天那样,能够立即看到新的信息。最好能实现是无刷新技术,类似聊天网站的那种,我需要的是能够加...
如何实现网页局部刷新,我的网站有一些信息是即时信息,需要局部刷新,最好以像QQ聊天那样,能够立即看到新的信息。
最好能实现是无刷新技术,类似聊天网站的那种,我需要的是能够加到我自己网的代码。 展开
最好能实现是无刷新技术,类似聊天网站的那种,我需要的是能够加到我自己网的代码。 展开
3个回答
展开全部
实现web页面的局部刷新
服务器的回传会引发整个页面的刷新,怎么样只让它刷新局部呢,前几天看见书上有讲用
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得复杂类型就不支持了
服务器的回传会引发整个页面的刷新,怎么样只让它刷新局部呢,前几天看见书上有讲用
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得复杂类型就不支持了
展开全部
使用iframe行不行?
如果行的话,假设有A.htm、B.htm两页,
A.htm:
<div id=aaa></div>
<iframe width=0 height=0 src=b.htm></iframe>
B.htm
<script>
parent.aaa.innerHTML='test!'
</script>
如果不行的话,就用xmlhttp.楼主去搜一下相关的知识吧.
另外,局部刷新是属于静态页面的范围,和服务商语言无关的.这个方法,asp,jsp都可以用
如果行的话,假设有A.htm、B.htm两页,
A.htm:
<div id=aaa></div>
<iframe width=0 height=0 src=b.htm></iframe>
B.htm
<script>
parent.aaa.innerHTML='test!'
</script>
如果不行的话,就用xmlhttp.楼主去搜一下相关的知识吧.
另外,局部刷新是属于静态页面的范围,和服务商语言无关的.这个方法,asp,jsp都可以用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询