为了让各为可以理解什么是AJAX,以下是一个AJAX的手工典范(即不援用任何的Library或AJAX framework),此典范颇为精要易懂,其作用次要是透过Client 真个Browser来即时监控Web 办事器资源或效能变革,列位只需做过一遍典范就可以理解AJAX在网页开辟上是何等具有威力了。 先来看看结果图:
本典范是一个复杂的AJAX例子,但麻雀虽小五脏俱全,可由此窥包涵始AJAX非同技能是怎样运作。不必要安置任何特别的AJAX套件,步调阐明如下:
一 创建Web项目 起首在VS 2005(或VS.NET 2003)创建一个平凡的WEB项目,大概您没有VS开辟东西,间接用记事本创建也行。
二 创建Client端页面 在Web专案中参加一个Client端页面Client.htm,并将此页面设定为肇始页,这个页面会向Web伺服器网页收回非同步呼唤哀求,而且将伺服器回传材料更新到网页元素中,代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <script language="javascript"> var XmlHttp=new ActiveXObject("Microsoft.XMLhttp"); function sendAJAX() { XmlHttp.Open("POST","Server.aspx",true); XmlHttp.send(null); XmlHttp.onreadystatechange=ServerProcess; } function ServerProcess() { if (XmlHttp.readystate==4 || XmlHttp.readystate=='complete') { document.getElementById('nameList').innerHTML =XmlHttp.responsetext; } } setInterval('sendAJAX()',1000); </script> </head> <body> <div id="nameList"></div> </body> </html>
三 创建Server端处置程式 别的在专案中参加一个Server.aspx网页(含.cs),Server.aspx不必要添加任何代码。 Server.aspx.cs 步伐码如下:
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Diagnostics; public partial class Server : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { PerformanceCounter myMemory = new PerformanceCounter(); myMemory.CategoryName = "Memory"; myMemory.CounterName = "Available KBytes"; string txtResult = "-->办事器可以用影象体巨细:" + myMemory.NextValue().ToString() + "KB"; Response.Write(DateTime.Now.ToLongTimeString() + txtResult); } }
阐明: 起首记得援用System.Diagnostics 定名空间,由于PerformanceCounter 必需利用该定名空间, 而PerformanceCounter种别可让您监控Windows 作业体系的种种效能计数器,在此透过它获得办事器每秒可用影象体巨细的变革情况。
实行Client.htm页面,约莫会花5秒启始Performance-Counter物件,之后透过AJAX便可每秒取得Server可用影象 体变革情况。固然用Server Side的Timer也可以完成,但那种方法会形成Server的Loading爆增,人多的话还大概搞垮你的Server,但AJAX 就具有极佳的弹性与乖巧,透过AJAX您可以即时侦测到材料库或事情的变革即时展现在网页上。
|