AJAX是技术的集合,就我个人看来,异步技术是其核心。AJAX是前端技术,提供与服务器异步通信的能力,主要应用于三层开发体系的表现层,能实现真正意义上的表现层与业务逻辑层相分离。我也是入行新手,今天写一简单的AJAX+ASP.NET+XML异步交互实例,希望可以帮到正迷惑于AJAX中的兄台们。若有什么错误的,请各位留言指出。
这个例子是在通过在网页表单中填入个人资料:名字和EMAIL,然后提交,异步进行数据写入XML。
1 实现流程图
1.1 AJAX提交数据引擎
主要是使用JS整合数据,通过DOM处理HTML进行布局。代码如下:
- <!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>
- <title>AJAX+ASP.NET+XML异步交互实例</title>
- <script type="text/javascript" language="javascript">
- var xmlhttp;
- function ajaxtest()
- {
- if(window.ActiveXObject)
- xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
- else if(window.XMLHttpRequest)
- xmlhttp=new XMLHttpRequest();
- var data=getdata();
- xmlhttp.onreadystatechange=doit;
- xmlhttp.open("GET","manage.aspx?info="+data,true);
- xmlhttp.send(null);
- }
- function doit()
- {
- document.getElementById("d1").innerHTML="正在提交数据";
- if(xmlhttp.readystate==4&&xmlhttp.status==200)
- document.getElementById("d1").innerHTML=xmlhttp.responsetext;
- }
- function getdata()
- {
- var dataStr=document.getElementById("name").value+",";
- dataStr=dataStr+document.getElementById("email").value;
- return dataStr;
- }
- </script>
- </head>
- <body>
- <div>
- 姓名:<input type="text" id="name" />
- EMAIL:<input type="text" id="email" />
- <input type="button" value="提交" οnclick="ajaxtest()" />
- 数据处理状态:<div id="d1"></div>
- </div></body>
- </html>
- 1.2 获得客房端的数据并进行处理。
- 即WEB应用程序aspx。目的在于对从客房端返回的数据进行处理,将处理后的数据传入数据处理层。
- public partial class manage: System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- string info= Request.QueryString["info"];
- string[] infoElem = info.Split(',');
- xmlhandle testxml = new xmlhandle();
- testxml.createNode(infoElem[0], infoElem[1]);
- Response.Write("数据添加成功");
- }
- }
- 1.3 数据处理层
- 其实就是一个XML文件的操作类,在这个类,实现你所需要的功能。
- using System;
- using System.Xml;
- public class xmlhandle
- {
- private string name;
- private string email;
- XmlDocument xmltest;
- public xmlhandle()
- {
- }
- private void readFile() //读取需要进行操作的XML文件
- {
- xmltest = new XmlDocument();
- string thepath = System.Web.HttpContext.Current.Server.MapPath("App_Data//test.xml");
- xmltest.Load(thepath);
- }
- public void createNode(string paramName, string paramEmail) //向XML文件添加节点函数
- {
- this.name = paramName;
- this.email = paramEmail;
- readFile();
- XmlNode bootNode = xmltest.SelectSingleNode("information");
- XmlElement userNode = xmltest.CreateElement("user");
- XmlElement nameNode = xmltest.CreateElement("name");
-
- ; nameNode.InnerText = name;
- XmlElement emailNode = xmltest.CreateElement("email");
- emailNode.InnerText = email;
- userNode.AppendChild(nameNode);
- userNode.AppendChild(emailNode);
- bootNode.AppendChild(userNode);
- xmltest.Save(System.Web.HttpContext.Current.Server.MapPath("App_Data//test.xml"));
- }
- }
- 1.4 数据层
- 即一个XML文件
- ?<?xml version="1.0" encoding="utf-8"?>
- <information>
- <user>
- <name></name>
- <email></email>
- </user>
- </information>