一、Ajax工作核心

Ajax的核心是JavaScript对象XMLHttpRequest(简称XHR)。它是一种支持异步请求的技术。可以通过使用XHR对象向服务器提出请求并处理响应,而不阻塞用户。

Ajax可以完成的功能有:

  • 在不重新加载页面的情况下更新网页
  • 在页面已加载后从服务器请求数据
  • 在页面已加载后从服务器接收数据
  • 在后台向服务器发送数据

1.1 Ajax简介

  Ajax可以说 是目前最流行的 WEB 技术,它采用客户端脚本与 Web 服务器交换数据,也就是说,客户端的表单请求不是直接给 WEB 服务器,而是一些 Javascript 脚本,再通过 JS 内置的 xmlhttprequest 对象,异步的将请求发送给 WEB 服务器, WEB 服务器处理完之后再回发给 Javascript 脚本 , 然后动态的更新页面数据。由此可见 AJAX 并不是一种独立的技术,而是由 Javascript+DHTML+DOM+HTML 多种技术的组合 , 它少了等待服务器响应的时间,并且它可以使页面局部刷新,由此增强了用户体验。

二、Ajax开发步骤

2.1XMLHttpRequest对象

Ajax核心对象XmlHttpRequest对象的常用的方法和属性如下:

  • open():建立到服务器的新请求
  • send():向服务器发送请求
  • abort():放弃当前请求
  • readyState:对象状态值,未为初始化、正在加载、加载完毕、交互、完成五种。
  • responseText :服务器返回的请求文本信息
  • onreadystatechange:每次状态改变所触发的事件处理程序
  • responseXML:从服务器进程返回的DOM兼容的文档数据对象
  • status:从服务器返回的数字代码,如404(未找到)
  • statusText:伴随状态码的字符串信息

XMLHttpRequest对象的创建以及与服务器的交互如下代码所示:

<script language="javascript" type="text/javascript">
function callServer()
{
var xmlHttp = new XMLHttpRequest();
var ID = document.getElementById("ID").value;
var PASS= document.getElementById("PASS").value;
   if((ID == null) ||(ID == "")) return;
if((PASS== null) ||(PASS == "")) return;
//创建url链接
var url = "Login?Id="+escape(ID)+"&PASS="+escape(PASS);
  //最后一个参数如果是true的话,那么将请求一个异步连结
xmlHttp.open("POST",url,true);
//如果服务器完成请求,RefreshPage函数被触发
xmlHttp.onreaadstatechange = RefreshPage;
//发送请求
xmlHttp.send(null);
} function RefreshPage()
{
if(xmlHttp.readyState == 4)
{
alert('服务器返回的数据为: ' + xmlHttp.responseText);
}
}
</script>

2.2 获取Request对象:

由于不同浏览器的差异,获取XmlHttpRequest对象需要采用不同的方式

<script language="javascript" type="text/javascript">
<!--
var xmlhttp;
// 创建XMLHTTPRequest对象
function createXMLHTTPRequest(){
if(window.ActiveXObject){ // 判断是否支持ActiveX控件
xmlhttp = new ActiveObject("Microsoft.XMLHTTP"); // 通过实例化ActiveXObject的一个新实例来创建XMLHTTPRequest对象
}
else if(window.XMLHTTPRequest){ // 判断是否把XMLHTTPRequest实现为一个本地javascript对象
xmlhttp = new XMLHTTPRequest(); // 创建XMLHTTPRequest的一个实例(本地javascript对象)
}
}
//-->
</script>

2.3 Ajax的基本请求/响应类型

Ajax应用程序中处理服务请求的流程如下:

  • 从web表单中获取需要提交的数据
  • 建立要连结的url
  • 打开到服务器的连接
  • 设置服务器在完成后要运行的函数
  • 发送请求

2.4 调用Ajax过程

<form>
<p>用户ID:<input type="text" name="ID" id="city" size="10" onChange="callServer();"/> </p>
<p>口令:<input type="text" name="PASS" id="state" size="16" onChange="callServer();"/> </p>
</form>

Ajax的基本请求/响应模型的更多相关文章

  1. asp.net请求响应模型原理随记回顾

    asp.net请求响应模型原理随记回顾: 根据一崇敬的讲师总结:(会存在些错误,大家可以做参考) 1.-当在浏览器输入url后,客户端会将请求根据http协议封装成为http请求报文.并通过主sock ...

  2. HTTP协议请求响应模型

    HTTP协议请求响应模型:以”用户登录“这个场景来描述 第一步:客户端发起请求到API接口层,操作:用户在客户端填写用户名和密码,点击登录,发送请求. 第二步:api接收到客户端发起的用户请求,api ...

  3. asp.net mvc请求响应模型原理回顾

    根据讲师所讲总结了一下(可能存在些描述错误) -------------mvc进入asp.net管道原理: (在执行httpapplication管道之前mvc和asp.net是相同的,不同之处在于管 ...

  4. Http请求响应模型

    主要用到以下四个部分: Client   API   DB   API 场景:登录 1.Client发起请求到API接口层 1.1用户在客户端输入登录信息,点击登录,发送请求 2.API接受用户发起的 ...

  5. 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求

    转http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求 ...

  6. AJAX 创建对象 请求 响应 readyState

    AJAX 创建对象 请求 响应 readyState AjAX = Asynchronous JavaScript and XML (异步的JavaScrip和 XML). 不是新的编程语言, 而是一 ...

  7. IT兄弟连 JavaWeb教程 使用AJAX发送POST请求并获取响应

    POST请求用于向服务器发送应该被保存的数据,因此POST请求天然比GET请求多需要一份需要被保存的数据.那么这些数据应该放在何处呢?毕竟,我们的open()方法接收的三个参数都没有合适的位置. 答案 ...

  8. IT兄弟连 JavaWeb教程 使用AJAX发送GET请求并获取响应

    GET请求用于获取数据,有时候我们需要获取的数据需要通过"查询参数"进行定位,在这种情况下,我们会将查询参数追加到URL的末尾,令服务器解析. 使用Ajax发送GET请求非常简单, ...

  9. Web请求响应简单整理

      简单对Web请求响应如何处理进行的整理,难免有理解不到位,理解有偏差的地方,如有理解有误的地方,希望大牛批评指正. 1.Web开发的定义首先看看微软对Web开发的定义:Web开发是一个指代网页或网 ...

随机推荐

  1. .Net程序员学用Oracle系列(10):系统函数(下)

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.转换函数 1.1.TO_CHAR 1.2.TO_NUMBER 1.3.TO_DATE 1.4.CAST 2.近似值函数 2. ...

  2. LaTeX入门教程(二)

    LaTeX(LATEX,音译"拉泰赫")是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用 ...

  3. TortoiseSVN历史版本安装及svn服务器搭建

    一.TortoiseSVN安装 1.TortoiseSVN下载 网址如下:https://tortoisesvn.net/downloads.html   进入客户端下载页面,根据你的电脑选择是64位 ...

  4. JS监听页面关闭

    JS可以监听浏览器页面的关闭,主要使用了window对象的onbeforeunload方法 在以前(旧版本的浏览器中),可以自定义提示文案 window.onbeforeunload = functi ...

  5. 【Linux学习三】Linux系统目录架构

    主要包括: ●bin:保存的是可执行文件,二进制,就是命令 ●boot:引导目录,操作系统的启动加载,包含版本内核文件.greb引导程序- ●dev:硬件设备文件,如硬盘.网卡.声卡.终端.显卡,每一 ...

  6. C++ 处理 utf-8

    类似"abc汉字"这样的字符串是以utf-8编码; C++ 的 cout执行的操作是把参数发送给stdout,因此如果终端支持utf-8, 汉字可以使用cout打印: 比较好的办法 ...

  7. jQuery基础教程第四版练习答案

    第二章 1. $('#selected-plays>li>ul>li').nextAll().addBack().addClass('special'); 2. $('table') ...

  8. Http中的Get/Post方法

    这篇文章源自http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是G ...

  9. bat脚本学习

    工作需求,写个bat脚本来启动自己的守护进程:bat方面完全空白啊~稍微学习了下,记录下来,后面复习! 直接上代码: 示例一:for字符串切割,切割文本中的字符串: test.txt 文本内容如下: ...

  10. CodeForces 711B Chris and Magic Square

    简单题. 找一个不存在$0$的行,计算这行的和(记为$sum$),然后就可以知道$0$那个位置应该填的数字(记为$x$). 如果$x<=0$,那么无解,否则再去判断每一行,每一列以及两个斜对角的 ...