AJAX的一个简单实例
来源:互联网 发布:linux系统ping命令 编辑:程序博客网 时间:2024/06/11 10:20
Default.aspx全部代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Default</title>
<script language="javascript" type="text/javascript">
var xmlHttp;
function createXMLHttpRequest()
{
//判断浏览器类型并创建对象
//IE
if (window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//FF
else if (window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
//光标处于输入框时引发的动作
function updateTotal()
{
url = "Default2.aspx?A=" + form1.elements["A"].value + "&B=" + form1.elements["B"].value;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = doUpdate;
xmlHttp.send();
return false;
}
function doUpdate()
{
if (xmlHttp.readyState == 4)
{
document.forms[0].elements["TOT"].value = xmlHttp.responseText;
}
}
</script>
</head>
<body onload = "createXMLHttpRequest();">
<form id="form1" action = "">
<div>
<p>
<input type = "text" id="A" onkeyup = "updateTotal()" value = "0"/>
<input type = "text" id="B" onkeyup = "updateTotal()"/ value = "0" />
</p>
<p>
<input type = "text" id="TOT" />
</p>
</div>
</form>
</body>
</html>
Default2.aspx全部代码(仅保留页面声明):
Default2.aspx.cs全部代码:
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;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int a = 0;
int b = 0;
if (Request.QueryString["A"] != null)
{
a = Convert.ToInt16( Request.QueryString["A"].ToString());
}
if (Request.QueryString["B"] != null)
{
b = Convert.ToInt16( Request.QueryString["B"].ToString());
}
Response.Write(a + b);
}
}
运行的效果图:
=============== 原理说明 =============
MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。
创建XMLHTTP对象的语句如下:
var Http = new ActiveXObject("Microsoft.XMLHTTP");
对象创建后调用Open方法对Request对象进行初始化,语法格式为:
Http .open (http-method, url, async, userID, password);
Open方法中包含了5个参数,前三个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示:
http-method: HTTP的通信方式,比如GET或是 POST
url: 接收XML数据的服务器的URL地址。通常在URL中要指明 ASP或CGI程序
async: 一个布尔标识,说明请求是否为异步的。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作
userID: 用户ID,用于服务器身份验证
password: 用户密码,用于服务器身份验证
XMLHTTP对象的Send方法
用Open方法对Request对象进行初始化后,调用Send方法发送请求:
Http .send()
Send方法的参数类型是Variant,可以是字符串、DOM树或任意数据流。发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。
XMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示:
值 说明
0 Response对象已经创建,但XML文档上载过程尚未结束
1 XML文档已经装载完毕
2 XML文档已经装载完毕,正在处理中
3 部分XML文档已经解析
4 文档已经解析完毕,客户端可以接受返回消息
客户机处理响应信息
客户机接收到返回消息后,进行简单的处理,基本上就完成了C/S之间的一个交互周期。客户机接收响应是通过XMLHTTP对象的属性实现的:
responseTxt:将返回消息作为文本字符串;
responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用;
responseStream:将返回消息视为Stream对象
------一个很简单的javascript例子,将获取XML文本生成字XMLDOM对象---------------
var Http = new ActiveXObject("Microsoft.XMLHTTP");
var url='getItemXml.jsp?id=1';//该页从数据库里询数并生成返回规范的xml文本
Http.open("POST",url,false);
Http.send();
var xmldoc=new ActiveXObject("MSXML.DOMDocument");
xmldoc.async=false;
xmldoc.loadXML(Http.responseText);
- 一个简单的ajax实例
- 一个简单的AJAX实例
- 一个简单的ajax实例
- 一个简单的AJAX实例
- AJAX的一个简单实例
- 一个简单的ajax实例
- 一个简单的Ajax实例
- 一个简单的ajax实例:ajax与struts2实例
- 一个简单的ajax实例:ajax与struts2实例
- ajax最简单的一个实例
- 一个最简单的Ajax实例
- 一个Ajax简单实例分析
- 简单的ajax实例
- 简单的Ajax实例
- 一个最简单的Ajax实例(大部分是抄袭的)
- 一个简单的兼容IE与firefox的ajax实例
- 一个简单的基于AJAX的二级联动实例
- 一个简单的ajax+servlert+jsp的完整实例
- 单机版加密狗/锁与网络版加密狗/锁的区别
- 循环滚动图片的实现
- POJ 1152 An Easy Problem
- 一生中必看的30个故事
- 新baby的喂养方法
- AJAX的一个简单实例
- ORACLE中进程的分类
- 匆匆
- 关于protected访问权限的一个错误认识
- 在家里CTRL C,然后在公司的电脑上CTRL V 为什么不可以
- 2009年华为软件设计大赛两道编程题
- 博客的积分跟下载的积分不相通的吗?
- 无题
- 有你 ,有絲絲の希望...^_^