AJAX
Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。
AJAX原理分析
1. AJAX引擎会在不刷新浏览器地址栏的情况下,发送异步请求
使用JavaScript获得浏览器内置的AJAX引擎(XMLHttpRequest对象)。
使用js确定请求路径和请求参数。
AJAX引擎对象根据请求路径和请求参数进行发送请求。
2. 服务器接收到ajax引擎的请求进行处理
服务器获得请求参数数据
服务器处理请求业务(调用业务层代码)
服务器响应数据给ajax引擎
3. AJAX引擎获得服务器响应的数据,通过执行JavaScript的回调函数将数据更新到浏览器页面具体位置。
通过设置给AJAX引擎的回调函数获得服务器响应的数据
使用JavaScript在指定的位置,显示响应数据,从而局部修改页面的数据,达到局部刷新目的。
jQuery框架的AJAX
AJAX请求
$.ajax({key:value,key:value})
常用属性:
url 请求的服务器端url地址
async (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false
data 发送到服务器的数据,可以是键值对形式,也可以是js对象形式
type (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"
dataType 预期的返回数据的类型,取值可以是 xml, html, script, json, text, _defaul等
success 请求成功后的回调函数
error 请求失败时调用此函数
GET请求
语法:$.get(url, [data], [callback], [type])
常用属性:
url:待载入页面的URL地址
data:待发送 Key/value 参数。
callback:载入成功时回调函数。
type:返回内容格式,xml, html, script, json, text, _default。
POST请求
语法:$.post(url, [data], [callback], [type])
常用属性:
url:待载入页面的URL地址
data:待发送 Key/value 参数。
callback:载入成功时回调函数。
type:返回内容格式,xml, html, script, json, text, _default。
应用场景
场景 1:数据验证
场景 2:按需取数据
场景 3: 自动更新页面
1.3. JSON
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
1. Json对象有三种数据格式
对象类型
数组类型
混合类型
(1). 对象类型
语法格式:{name:value,name:value...}
解释:
以”{”开始,以”}”结束
其中name是字符串类型,而value是任意类型
(2). 数组类型
语法格式:[{},{}... ...]
解释:
以”[”开始,以”]”结束
数组可包含多个对象
(3). 混合类型
语法格式:{name:[]... ...}
合理包裹嵌套对象类型和数组类型
2. 如何将数据转换为JSON格式
(1). 常见的json转换工具
(2). json-lib的使用
需要导入jar包
json-lib.jar
json-lib的依赖jar包有
commons-lang.jar
commons-beanutils.jar
commons-logging.jar
commons-collections.jar
ezmorph.jar
在json-lib中只有两个核心类
JSONObject
JSONArray
常用方法(JSONObject, JSONArray)
静态方法 fromObject()
将Javabean对象转换为json对象
JSONObject jsonObject=JSONObject.fromObject(对象名);
将集合转换为json数组
JSONArray jsonArray=JSONArray.fromObject(集合名);
静态方法toString()
将json对象转换为json字符串
String jsonString1=obj.toString();
将json对象转换为json字符串
String jsonString2=jsonArray.toString()