`
javandroid
  • 浏览: 25639 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

ajax原理和数据格式

 
阅读更多

异步请求技术的实现除了jquery ajax,还有flash,applet,iframe等。
但ajax对流媒体的支持没有flash,applet要好。另外ajax对手持设备的支持不是很好。

ajax的工作原理

ajax的核心是XmlHttpRequest。
1.创建XmlHttpRequest核心对象。

var xhr=new XmlHttpRequet()
2.注册回调函数,监听服务器的状态
 xhr.onreadystatechange=function{
	if(xhr.readyState==4){
		if(xhr.status==200||xhr.state.status==304){
			 //开始处理信息
			 xhr.responseText()
		}
	}
 }	

当服务器的readyState值为4时,说明已经请求已经结束了,服务器可以进行响应了。

3.客户端与服务端建立连接

xhr.open(method, url, async)

method:get或post方式
url:请求的路径
async:是否异步(默认true)

4.设置请求头(post请求才需要设置)

xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
5.客户端向服务器发送请求
xhr.send(data)
如果是get请求,则不会向服务器发送任何数据。需要手动设置:

xhr.send(null)   

服务器响应的数据格式

可以是文本格式,xml或者json。文本格式用的较少,通常是xml或json格式。
1.文本格式
XMLHttpRequest对象的responseText属性

2.XML格式
如果响应数据格式为XML的话,需设置响应的首部信息:"Content-Type"为"text/xml"。
注意:如果不设置首部信息,客户端接收并不会报错,但是接收值为空。
3.json格式
json被存储在responseText属性中
可以使用XMLHttpRequest对象的responseText属性。

json格式分为类map格式和类数组格式。

其他格式转为XML和JSON格式

将List,Array,Map格式转化为XML格式:XStream
将List,Array,Map格式转化为JSON格式:Json-lib
JSONUtils.java
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;
import net.sf.json.xml.XMLSerializer;

/**
 * 处理json数据格式的工具类
 * 
 * @author lp
 * @version 1.0
 */
public class JsonUtil {
	/**
	 * 将数组转换成String类型的JSON数据格式
	 * 
	 * @param objects
	 * @return
	 */
	public static String array2json(Object[] objects){
		
		JSONArray jsonArray = JSONArray.fromObject(objects);
		return jsonArray.toString();
		
	}
	
	/**
	 * 将list集合转换成String类型的JSON数据格式
	 * 
	 * @param list
	 * @return
	 */
	public static String list2json(List list){
		
		JSONArray jsonArray = JSONArray.fromObject(list);
		return jsonArray.toString();
		
	}
	
	/**
	 * 将map集合转换成String类型的JSON数据格式
	 * 
	 * @param map
	 * @return
	 */
	public static String map2json(Map map){
		
		JSONObject jsonObject = JSONObject.fromObject(map);
		return jsonObject.toString();
		
	}
	
	/**
	 * 将Object对象转换成String类型的JSON数据格式
	 * 
	 * @param object
	 * @return
	 */
	public static String object2json(Object object){
		
		JSONObject jsonObject = JSONObject.fromObject(object);
		return jsonObject.toString();
		
	}
	
	/**
	 * 将XML数据格式转换成String类型的JSON数据格式
	 * 
	 * @param xml
	 * @return
	 */
	public static String xml2json(String xml){
		
		JSONArray jsonArray = (JSONArray) new XMLSerializer().read(xml);
		return jsonArray.toString();
		
	}
	
	/**
	  * 除去不想生成的字段(特别适合去掉级联的对象)
	  *
	  * @param excludes
	  * @return
	*/
	public static JsonConfig configJson(String[] excludes) {
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.setExcludes(excludes);
		jsonConfig.setIgnoreDefaultExcludes(true);
		jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
		return jsonConfig;
	}
	
}

eval()函数

eval():将js对象转化为json对象



xhr.onreadystatechange = function(){
	if(xhr.readyState==4){
		if(xhr.status==200){
			var data = xhr.responseText;					
			/*
			 * eval()函数:JSON格式的转换
			 * 如果向eval()函数,传递一对空的大括号"{}"
			 * 	* 利用"()"将其包装,eval()函数会强行将其转换成JSON数据格式
			 * 	* 不用"()"将其包装,eval()函数会将其解析为一个空的语句块
			 */
			var json = eval("("+data+")");
			
			alert(data);
		}
	}
}


IE将XmlHttpRequest实现为一个Active对象
其他浏览器则实现为本地的js对象
分享到:
评论

相关推荐

    AJAX原理 原理 AJAX

    "AJAX原理与技术的深入分析" AJAX(Asynchronous JavaScript and XML)是一种异步通信技术,允许Web应用程序异步地从服务器请求数据,而不需要重新加载整个网页。下面我们将深入分析AJAX的原理、技术、意义和发展...

    Ajax_xml数据格式

    总结,Ajax和XML在早期Web开发中起到了重要作用,但随着技术的发展,JSON等其他数据格式的出现,XML在Ajax应用中的使用已经减少。然而,理解XML和Ajax的结合对于了解Web开发的历史和原理仍然非常重要。

    ajax 基本原理 ajax 基本原理

    尽管名称中包含XML,但Ajax实际上可以使用任何数据格式,如JSON或纯文本。Ajax的核心在于它能够通过JavaScript在后台与服务器进行异步数据交换,从而实现局部刷新页面的功能,提高了Web应用的性能和用户体验。 ####...

    ajax ajax原理 ajax代码 ajax编程 ajax学习

    - **jQuery 和 Axios**:学习Ajax时,可以了解jQuery的$.ajax()方法和现代JavaScript库Axios,它们都提供了更方便的接口来处理Ajax请求。 在项目中,Ajax常用于实现动态加载、表单提交、实时通讯等功能。随着前端...

    关于ajax原理的ppt

    **Ajax原理的理解** Ajax,全称为Asynchronous JavaScript and XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它的出现极大地提升了Web应用程序的用户体验,因为它允许数据在后台与服务器...

    ajax原理、JSON介绍

    - **数据与呈现分离**:Ajax使得内容和展示可以独立管理,便于开发人员和设计师合作。 3. **Ajax的组成部分** - **JavaScript**:用于编写Ajax应用的脚本语言。 - **CSS**:控制Ajax用户界面的样式。 - **DOM...

    Ajax和servlet数据交互小实例

    Ajax(异步JavaScript和XML)技术允许我们在不刷新整个网页的情况下与服务器交换数据和更新部分网页内容,而Servlet是Java服务器端编程的一个重要组成部分,用于处理HTTP请求和响应。 1. **Ajax基础**: - **什么...

    Ajax原理与系统开发》源码

    **Ajax原理详解** Ajax,全称为"Asynchronous JavaScript and XML",是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax的核心是JavaScript对象XMLHttpRequest,它允许在后台与服务器交换数据并...

    ajax封装数据原理

    ajax封装数据原理详解,要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看 processData选项。对象必须为key/...

    ajax原理及用法

    ### AJAX原理及用法 #### 一、什么是Ajax技术? Ajax(Asynchronous JavaScript and XML,异步JavaScript与XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据...

    ajax原理文档说明txt格式

    ### AJAX原理详解 #### 一、引言 随着互联网技术的发展与用户对交互体验需求的提升,异步请求成为Web开发中的重要组成部分。AJAX(Asynchronous JavaScript and XML)作为一种无需重新加载整个网页即可更新部分...

    Ajax引擎的原理和应用.pdf

    XML是一种标准的数据格式,可以方便地存储和传输数据;XSLT则用于转换XML数据,使得数据可以根据不同的应用场景被重新组织和展示。 4. **XMLHttpRequest**:这是Ajax技术中最为核心的部分,它提供了一种在后台与...

    ajax操作json数据

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,由于其与JavaScript语法的紧密关联,成为AJAX传输数据的首选格式。在"ajax操作json数据"这个主题中,我们将深入探讨如何使用AJAX来处理和解析JSON...

    使用ajax取得数据

    JSON由于其轻量级和易处理的特性,已经成为Ajax通信的首选数据格式。 ### 4. 异常处理 在发送Ajax请求时,应考虑可能出现的错误情况,如网络中断、服务器错误等。可以监听`onerror`事件或检查`status`属性来处理...

    AJAX异步处理原理分析

    **AJAX异步处理原理分析** AJAX,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在不刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现局部...

    AJAX技术原理和使用方法

    4. **XML**: 用于存储和传输数据的一种标准格式。 5. **XSLT**: 用于转换XML数据的样式表语言。 6. **XMLHttpRequest**: 这是AJAX技术的核心组件,用于在后台与服务器交换数据,实现局部更新网页的效果。 7. **...

    Ajax基本运行原理

    尽管名称中含有“XML”,但实际上Ajax可以使用多种数据格式,如XML、JSON等。此外,Ajax并不是一种新的编程语言或框架,而是一组现有技术的组合应用,包括: - **JavaScript**:用于处理客户端逻辑。 - **DOM ...

    Ajax的原理

    Ajax不仅限于XML格式的数据,它也可以处理JSON、HTML或其他文本格式。在实际应用中,JSON因其轻量级和易于处理的特性,成为Ajax传输数据的常见选择。 在开发过程中,为了简化Ajax操作,通常会使用库或框架,比如...

    Ajax实现原理和使用详解

    在实际应用中,JavaScript 负责创建 xhr 对象、配置请求、处理响应数据和更新 DOM。xhr 对象则负责发起请求、接收响应并通知 JavaScript。这种分离使得 JavaScript 可以专注于页面逻辑,xhr 对象则专注于网络通信,...

    ajax详解教程讲述ajax原理

    Ajax 详解教程讲述 Ajax 原理 Ajax 是一种异步 JavaScript 和 XML 技术,允许 Web 应用程序实时更新页面内容,而不需要重新加载整个页面。Ajax 技术的核心是使用 XMLHttpRequest 对象异步地从服务器获取数据,并...

Global site tag (gtag.js) - Google Analytics