我这里用javascript来操作ajax来实现的,希望楼主看看
1、ajaxTime.aspx文件
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajaxTime.aspx.cs" Inherits="test11.ajaxTime" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
//根据不同的浏览器使用相应的方式来创建异步对象
//返回创建好的异步对象
function createXmlHttp() {
var xhobj = false;
try {
xhobj = new ActiveXObject("Msxml2.XMLHTTP"); //IE6.0+
} catch (e) {
try {
xhobj = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e2) {
xhobj = false;
}
}
//谷歌,FireFox,Opera 8.0+,safari
if (!xhobj && typeof (XMLHttpRequest) != 'undefined') {
xhobj = new XMLHttpRequest();
}
return xhobj;
}
//ajax请求,获得服务器数据
function getData() {
var xhr;
//1.创建异步对象
xhr = createXmlHttp();
//2.设置请求参数
xhr.open("post", "ajaxTime.aspx", true);
//3.设置post的请求报文体数据格式(像此格式:name=jim&&age=18)
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//4.设置回调函数,用来检查服务器是否将数据发送回给异步对象
//异步对象的readystate属性发生改变时,就会回调方法来检查当前状态,执行用户定义的代码
xhr.onreadystatechange = function () {
//服务器已将数据发回到浏览器的异步对象
if (xhr.readyState == 4) {
////如果返回的响应报文状态吗为200,才代表服务器运行正确
if (xhr.status == 200) {
//将xhr.responseText转成json对象时,必须在左右加上括号
var timeJson = eval("(" + xhr.responseText + ")");
var text = document.getElementById("<%=LbTime.ClientID %>");
//取出服务器返回Json数据中的时间,并将其赋给Label控件
text.innerHTML = timeJson.time;
}
}
}
//5.异步对象发送请求
xhr.send("start=1");
}
//当页面加载完成后发送数据
window.onload = function () {
//getData();
setInterval("getData()", 1000);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="LbTime" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
2、ajaxTime.aspx.cs文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace test11
{
public partial class ajaxTime : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string start = Request.Form["start"];
if (!string.IsNullOrEmpty(start))
{
string timeStr = DateTime.Now.ToLocalTime().ToString();
//将当前服务器的事件已JSON格式发回浏览器
Response.Write("{'time':'" + timeStr + "'}");
//结束运行,不呈现控件
Response.End();
}
else
{
LbTime.Text = DateTime.Now.ToLocalTime().ToString();
}
}
}
} |