ajax和jQuery

Ajax
Web 2.0的特点(所有操作都是在不刷新窗口的情况下完成的)
用户贡献内容
内容聚合RSS
更丰富的“用户体验”
无刷新:不刷新整个页面,只刷新局部
无刷新的好处
只更新部分页面,有效利用带宽
提供连续的用户体验
提供类似C/S的交互效果,操作更方便

传统Web与Ajax的差异
差异 方式 说明
发送请求方式不同 传统Web 浏览器发送同步请求
Ajax技术 异步引擎对象发送请求
服务器响应不同 传统Web 响应内容是一个完整页面
Ajax技术 响应内容只是需要的数据
客户端处理方式不同 传统Web 需等待服务器响应完成并重新加载整个页面后用户才能进行操作
Ajax技术 可以动态更新页面中的部分内容,不影响用户在页面进行其他操作
---------------------XMLHttpRequest
整个Ajax技术的核心
提供异步发送请求的能力
常用方法
open( String method, String url,
boolean async, String user,
String password ) 创建一个新的HTTP请求
send( String data ) 发送请求到服务器端
abort( ) 取消当前请求
setRequestHeader(
String header, String value ) 设置请求的某个HTTP头信息
getResponseHeader(String header) 获取响应的指定HTTP头信息
getAllResponseHeader( ) 获取响应的所有HTTP头信息

事件
onreadystatechange:指定回调函数
常用属性
readyState:XMLHttpRequest的状态信息
就绪状态码 说明
0 XMLHttpRequest对象未完成初始化
1 XMLHttpRequest对象开始发送请求
2 XMLHttpRequest对象的请求发送完成
3 XMLHttpRequest对象开始读取响应
4 XMLHttpRequest对象读取响应结束
常用属性(续)
status:HTTP的状态码
状态码 说明
200 服务器正确返回响应
404 请求的资源不存在
500 服务器内部错误
403 没有访问权限
statusText:返回当前请求的响应状态
responseText:以文本形式获得响应的内容
responseXML:将XML格式的响应内容解析成 DOM对象返回

------------------GET请求和POST请求的区别
步 骤 请求方式 实 现 代 码
初始化组件 GET xmlHttpRequest.open( “GET”, url, true );
POST xmlHttpRequest.open( “POST”, url, true );
xmlHttpRequest
.setRequestHeader( “Content-Type”,
“application/x-www-form-urlencoded” );
发送请求 GET xmlHttpRequest.send( null );
POST xmlHttpRequest.send(
“key=xxx&type=12&year=2016” );
-------------------GET:

-----------------------POST:

--------------------使用jQuery实现Ajax,jQuery将Ajax相关操作都进行了封装
传统方式实现Ajax的不足
步骤繁琐
方法、属性、常用值较多不好记忆
处理复杂结构的响应数据(如XML格式)比较烦琐
浏览器兼容问题

. a j a x ( [ s e t t i n g s ] ) ; − − − − − − − − − 常 用 属 性 参 数 参 数 类 型 说 明 u r l S t r i n g 发 送 请 求 的 地 址 , 默 认 为 当 前 页 地 址 t y p e S t r i n g 请 求 方 式 , 默 认 为 G E T d a t a P l a i n O b j e c t 发 送 到 服 务 器 的 数 据 或 S t r i n g 或 A r r a y d a t a T y p e S t r i n g 预 期 服 务 器 返 回 的 数 据 类 型 , 包 括 : X M L 、 H T M L 、 S c r i p t 、 J S O N 、 J S O N P 、 t e x t t i m e o u t N u m b e r 设 置 请 求 超 时 时 间 g l o b a l B o o l e a n 表 示 是 否 触 发 全 局 A j a x 事 件 , 默 认 为 t r u e − − − − − − − − − − − − − − − − 常 用 函 数 参 数 参 数 类 型 说 明 b e f o r e S e n d F u n c t i o n ( j q X H R j q x h r , P l a i n O b j e c t s e t t i n g s ) 发 送 请 求 前 调 用 的 函 数 s u c c e s s F u n c t i o n ( 任 意 类 型 r e s u l t , S t r i n g t e x t S t a t u s , j q X H R j q x h r ) 请 求 成 功 后 调 用 的 函 数 , 参 数 r e s u l t : 可 选 , 由 服 务 器 返 回 的 数 据 e r r o r F u n c t i o n ( j q X H R j q x h r , S t r i n g t e x t S t a t u s , S t r i n g e r r o r T h r o w n ) 请 求 失 败 时 调 用 的 函 数 c o m p l e t e F u n c t i o n ( j q X H R j q x h r , S t r i n g t e x t S t a t u s ) 请 求 完 成 后 ( 无 论 成 功 还 是 失 败 ) 调 用 的 函 数 − − − − − − − − − − − − − − − − − − − − − .ajax( [settings] ); ---------常用属性参数 参 数 类 型 说 明 url String 发送请求的地址,默认为当前页地址 type String 请求方式,默认为GET data PlainObject 发送到服务器的数据 或 String 或 Array dataType String 预期服务器返回的数据类型,包括:XML、HTML、Script、JSON、JSONP、text timeout Number 设置请求超时时间 global Boolean 表示是否触发全局Ajax事件,默认为true ----------------常用函数参数 参 数 类 型 说 明 beforeSend Function ( jqXHR jqxhr, PlainObject settings ) 发送请求前调用的函数 success Function( 任意类型 result, String textStatus, jqXHR jqxhr ) 请求成功后调用的函数,参数result:可选,由服务器返回的数据 error Function ( jqXHR jqxhr, String textStatus, String errorThrown ) 请求失败时调用的函数 complete Function ( jqXHR jqxhr, String textStatus ) 请求完成后(无论成功还是失败)调用的函数 --------------------- .ajax([settings]);urlStringtypeStringGETdataPlainObjectStringArraydataTypeStringXMLHTMLScriptJSONJSONPtexttimeoutNumberglobalBooleanAjaxtruebeforeSendFunction(jqXHRjqxhr,PlainObjectsettings)successFunction(result,StringtextStatus,jqXHRjqxhr)resulterrorFunction(jqXHRjqxhr,StringtextStatus,StringerrorThrown)completeFunction(jqXHRjqxhr,StringtextStatus).ajax()
$.ajax( {
“url” : “url”, // 要提交的URL路径
“type” : “get”, // 发送请求的方式
“data” : data, // 要发送到服务器的数据
“dataType” : “text”, // 指定传输的数据格式
“success” : function(result) { // 请求成功后要执行的代码
},
“error” : function() { // 请求失败后要执行的代码
}
} );

$.ajax({
“url”:“UserServlce”,
“type”:“get”,
“data”:“opr=sel”,
“dataType”:“json”,
“success”:function(result){
$(result).each(function(){
$("#box").append("

  • "+this.name+"|"+this.age+"
  • ");
    });
    },
    “error”:function(){
    alert(“请求异常,请联系管理员”);
    }
    });

    ------------------------JSON
    JSON(JavaScript Object Notation)
    一种轻量级的数据交换格式
    采用独立于语言的文本格式
    通常用于在客户端和服务器之间传递数据
    JSON的优点
    轻量级交互语言
    结构简单
    易于解析
    -----定义json对象:
    var JSON对象 = { “name” : value, “name” : value, …… };
    var person = { “name” : “张三”, “age” : 30, “spouse” : null };

    -----定义json数组:
    var JSON数组 = [ value, value, …… ];
    var countryArray = [ “中国”, “美国”, “俄罗斯” ];
    var personArray = [ { “name”:“张三”, “age”:30 },
    { “name”:“李四”, “age”:40 } ];
    -----访问json属性:
    JSON对象.name

    Java集合转json
    StringBuffer sb=new StringBuffer();
    sb.append("[");
    for (int i=0;i< users.size();i++) {
    sb.append("{");
    sb.append("“name”:""+users.get(i).getName()+"",“age”:""+users.get(i).getAge()+""");
    if(i==users.size()-1){
    sb.append("}");
    }else{
    sb.append("},");
    }
    }
    sb.append("]");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值