图解Ajax

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6126542.html

Ajax指Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。而实现的原理基础就是:网页DOM对象可以精确地对网页中的部分内容进行操作、XML作为单纯的数据存储载体使得客户端与服务器交换的只是网页内容的数据而没有网页样式等等的附属信息、XMLHttpRequest是与浏览器本身内置的request相互独立的与服务器交互的请求对象。

网页应用Ajax与服务器交互的抽象过程如下图:

过程详解:

1: 要使用Ajax技术,基础中的基础,就是要创建一个XMLHttpRequest对象,无它就没有异步传输的可能:

var xmlhttp;
if (window.XMLHttpRequest) { //检查浏览器的XMLHttpRequest属性,如果为真则支持XMLHttpRequest
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp=new XMLHttpRequest();
} else {
// IE6, IE5 浏览器执行代码
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

2:在网页中为某些事件的响应绑定异步操作:通过上面创建的xmlhttp对象传输请求、携带数据。在发出请求前要先定义请求对象的method、要提交给服务器中哪个文件进行请求的处理、要携带哪些数据、是否异步。

其中,与普通的request提交数据一样,这里也分两种方法:GET/POST

 xmlhttp.open("GET","/try/ajax/demo_get2.php?fname=Henry&lname=Ford",true); xmlhttp.send();
xmlhttp.open("POST","/try/ajax/demo_post2.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.send("fname=Henry&lname=Ford");

3:服务器收到请求后,把附带的数据作为输入传给处理请求的文件,例如这里:把fname=Henry&lname=Ford作为输入,传给  /try/ajax/demo_get2.php  这个文件。然后文件根据传入的数据做出处理,最终返回结果,通过response对象发回去。客户端根据xmlhttp对象来获取response内容,然后调用DOM对象根据response内容来局部修改网页内容。

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)//请求处理完毕且状态为成功
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;//用response内容来修改DOM中的元素的内容
    }
  

其中,response的类型有两种:字符串类型和XML文本。两种回应的不同提取如下:

responseText 属性返回字符串形式的响应:

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

如果来自服务器的响应是 XML,需要作为 XML 对象进行解析,使用 responseXML :

xmlDoc=xmlhttp.responseXML; //获取服务器响应的XML文本并转换得到XMLDOM对象
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");//通过XMLDOM对象调用方法来获取XML对象中的内容
for (i=0;i<x.length;i++) {
txt=txt + x[i].childNodes[0].nodeValue + "<br>"; }

document.getElementById("myDiv").innerHTML=txt;//把获取到的内容通过document对象更新到网页内容去

    

时间: 2025-01-18 17:12:43

图解Ajax的相关文章

30分钟全面解析-图解AJAX原理

背景: 1.传统的Web网站,提交表单,需要重新加载整个页面. 2.如果服务器长时间未能返回Response,则客户端将会无响应,用户体验很差. 3.服务端返回Response后,浏览器需要加载整个页面,对浏览器的负担也是很大的. 4.浏览器提交表单后,发送的数据量大,造成网络的性能问题. 问题: 1.如何改进? 2.AJAX是什么? 3.有什么优势? 4.有什么缺点? 先上原理图: 高清无码图在这里:点我查看大图!!! 一.什么是 AJAX 1.为什么需要AJAX 当需要从服务器获取数据,并刷

Ajax原理与图解

Ajax原理 Ajax 的全称是Asynchronous JavaScript and XML. Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其中最关键的一步就是从服务器获得请求数据. 实现原理图如下: 代码: <script type="text/javascript">   var xmlHttp=null;   try   {       xmlHttp=new 

ajax详解

1.ajax介绍 1.1.什么是ajax 全称:Asynchronous JavaScript And XML(异步 JavaScript 及 XML) Ajax的作用:实现异步请求的技术. 什么是同步请求? 场景:页面上有一个a标签,用户点击a标签,浏览器发出一个请求,然后服务器给出一个响应. (请求,其实是用户的操作,触发的) 什么是异步(不同步)请求? 场景:在用户注册的时候,用户首先输入用户名,接下来用户继续填写其他注册信息,与此同时,浏览器自动发送了一个请求,将用户输入的用户名发送给服

用大白话揭开Ajax长轮询(long polling)的神秘面纱

在看这篇Ajax长轮询之前可以先看看Ajax轮询技术(没有长),有助于理解: Ajax长轮询属于Ajax轮询的升级版,在客户端和服务端都进行了一些改造,使得消耗更低,速度更快. "不间断的通过Ajax查询服务端". 来,小二,先上代码~: Reception.html //客户端 <html> <head> <title></title> <script src="http://lib.sinaapp.com/js/jqu

myeclipse-10.7-offline-installer-windows安装图解及注意事项

MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们能够在数据库和JavaEE的开发.公布以及应用程序server的整合方面极大的提高工作效率.它是功能丰富的JavaEE集成开发环境,包含了完备的编码.调试.測试和公布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate. MyEclipse 是一个十分优秀的用于开发Java

【AJAX】你的知识需要总结

俗话说,往事开头难.AJAX刚开始时,微软视频一上来就是1h多一集的视频(实例为主),相比来说王兴魁视频的例子较简单,没那么复杂的赶脚. 结合视频,找了本基础知识的书,两者交互看.对于AJAX有了点浅浅的认识.下面就通过对比及导图联系来认识一下AJAX. 1.AJAX理解: 1)文字表述: AJAX是一种快速创建动态网页的技术,但它不算是新技术,可理解成AJAX是多种技术(JS,HTML和CSS.DOM.XMLHTTPRequest等)的综合.AJAX的核心就是JS对象XMLHttpReques

《图解HTTP》学习笔记之入门

学习HTTP之前,很必要了解一下关于Web网络基础. TCP/IP协议族 1.应用层:应用层决定了向用户提供应用 服务时的通信活动,比如FTP(文件传输协议).DNS(域名系统).HTTP(超文本传输协议) 应用层就像目的地 2.传输层:传输层对上层应用层提供处理网络连接中的两台计算机之间的数据传输,有两个协议TCP(传输控制协议).UDP(用户数据协议) 传输层就像是马路上的规则 在TCP协议中要通过三次握手才能建立可靠连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,

高性能的.NET图解控件Essential Diagram for ASP.NET下载及介绍

Essential Diagram for ASP.NET是一款可扩展的高性能的.NET图解控件,可以用于开发像Microsoft Visio一样的图形和绘图应用程序,支持矢量和光栅图形,支持AJAX功能. 具体功能: 支持导出图解为多种数据格式,如位图.加强的元文件.SVG等 支持多层图解 控件使用MVC来设计,使数据.呈现和用户交互独立开来 支持子节点继承父节点属性,并且可以运行时添加自定义属性 连接线类型支持直线.曲线.多段线和贝塞尔曲线 控件支持自动路由选择和桥接 支持多种端点类型:Ci

初学Ajax

AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和XML(标准通用标记语言的子集). AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面.