今天听了webcast上苏鹏的关于ajax 的讲座,照着他做了个例子,虽然简单,但也初步了解了一下ajax的异步存取的功能。把代码粘出来。
1.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">
var XmlHttp=new ActiveXObject("Microsoft.XMLhttp");//这里没有判断浏览器的类型,只针对IE了,
function sendAJAX()
{
//最后一个参数,true表示异步,false表示同步
//参考http://www.xmlhttp.cn/manual/open.html
XmlHttp.Open("post","Default.aspx",false);
//onreadystatechange属性表示当onreadystate变化的时候调用哪个事件,好像必须放在XmlHttp.Open和XmlHttp.Send语句中间,
XmlHttp.onreadystatechange=ServerProcess;
XmlHttp.send(null);
}
function ServerProcess()
{
/*
readystate有以下几种状态,参考:http://www.xmlhttp.cn/manual/readystate.html
0 (未初始化) | 对象已建立,但是尚未初始化(尚未调用open方法) |
1 (初始化) | 对象已建立,尚未调用send方法 |
2 (发送数据) | send方法已调用,但是当前的状态及http头未知 |
3 (数据传送中) | 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误, |
4 (完成) | 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据 |
*/
if (XmlHttp.readystate==4 || XmlHttp.readystate=='complete')
{
document.getElementById('nameList').innerHTML =XmlHttp.responsetext;
}
}
setInterval('sendAJAX()',1000);
</script>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body onLoad="sendAJAX();">
<div id="nameList"></div>
</body>
</html>
下面的.net页面就没什么了
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
Default.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Diagnostics;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
PerformanceCounter myMemory = new PerformanceCounter();
myMemory.CategoryName = "Memory";//CategoryName 的几种类型可以看msdn
myMemory.CounterName = "Available KBytes";
string txtResult = "-->当前可用内存:" + myMemory.NextValue().ToString() + "KB";
Response.Write(DateTime.Now.ToLongTimeString() + txtResult);
}
}
就这了,很简单,
还可以实现页面上实时显示时间把下面这句
XmlHttp.Open("post","Default.aspx",false);
改成
XmlHttp.Open("post","2.asp",false);
2.asp
<%=now%>