C#:
[Syste.Web.Service.WebMethod]
Public static void doDBUpdate(){
... //数据库更新操作之类的后台处理,也可直接更新aspx中控件的内容
}
aspx中:
1. ScriptManager必须添加:
<asp:scriptManager id="sm1" runat="server" EnablePageMethods=“True" />
2. Javascript:
<script language = "javascript">
var myInterval = setInterval("refresh()", 1000); //也可以用setTimeOut(),用法一样。据说,setInterval是绝对时间尺度。setTimeOut会根据负荷状况,间隔会变长
function refresh(){
PageMethod.doDBUpdate();
}
//如果要更新aspx控件内容:(稍微有点奇怪,可能是Javascript的做法不同)
function showUpdate(){
PageMethod.showTime(result); //showTime的C#写法同上
}
function result(resultTime){
document.getElementById("labelX").value = resultTime;
// 如果要根据返回值判断的话,在result()中判断,给公共变量赋值后在外面判断会有延迟导致数据不更新。
// 如果要根据判断的值来决定是否进行页面返回,可在判断结束后,用document.forms[0].submit();强制刷新。
}
</script>