Ajax\jQuery\JSON


  1. Ajax:异步刷新技术

无刷新的情况下更新页面内容

  • 只更新部分页面,有效利用带宽

  • 提供连续的用户体验

  • 提供类似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头信息

  • XMLHttpRequest对象的常用属性

属性名称

说明

onreadystatechange

设置回调函数,作为readyState属性值改变时的事件处理程序

readyState

XMLHttpRequest的状态码

0:XMLHttpRequest对象未完成初始化

1:XMLHttpRequest对象开始发送请求

2:XMLHttpRequest对象的请求发送完成

3 :XMLHttpRequest对象开始读取响应

4:XMLHttpRequest对象读取响应结束

status

当前请求的HTTP状态码

200:正确返回404:找不到访问对象

status

返回当前请求的HTTP状态码

statusText

返回当前请求的响应状态

responseText

以文本形式获得响应的内容

responseXML

将XML格式的响应内容解析成 DOM对象返回

  • GET请求和POST请求的区别

不同步骤

请求方式

实现代码

初始化XMLHttpRequest对象

GET

xmlHttpRequest.open("GET", url, true);

POST

xmlHttpRequest.open("POST", url, true);

xmlHttpRequest.setRequestHeader(

"Content-Type",

"application/x-www-form-urlencoded");

发送Ajax请求

GET

xmlHttpRequest.send(null);

POST

xmlHttpRequest.send("name=xxx&age=20");


  1. 使用jQuery简化Ajax实现

传统方式实现Ajax的不足

  • 步骤繁琐

  • 方法、属性、常用值较多难以记忆

  • 不便于处理XML格式等复杂结构的响应数据

  • 存在浏览器兼容问题

jQuery将Ajax相关操作都进行了封装

  • settings是一组用于配置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( { "url" : "/microblog/control/register", //要请求的URL路径 "type" : "POST", //发送请求的方式 "data" : "opr=checkUser&userTel="+$("#userTel").val(), //要发送到服务器的数据 "dataType" : "text", //指定响应的数据格式 "success" : function callBack(data) { //参数表示响应结果 if (data == "true") { //省略页面设置的代码 } else { //省略页面设置的代码 }} //响应成功后执行的代码 "error" : function() { //请求失败后执行的代码 alert("手机号验证时出现错误,请稍后再试!"); }} );


beforeSend参数

发送请求前调用的函数

使用场景

  • 请求耗时较长,结果返回之前,显示“请求中”提示信息

  • 禁用“提交”按钮,杜绝用户重复操作

complete参数

  • 请求完成后(无论成功还是失败)调用的函数

使用场景

  • 响应结束后,无论是否成功,都要隐藏“请求中”提示

  • 将“提交”按钮恢复可用


  1. JSON数据格式

JSON(JavaScript Object Notation)

  • 一种轻量级的数据交换格式

  • 采用独立于语言的文本格式

  • 通常用于在客户端和服务器之间传递数据

JSON的优点

  • 轻量级交互语言

  • 结构简单

  • 易于解析

使用JSON数据格式定义对象

  • 整个表达式放在“{ }”中

  • 数据以名/值对的格式存在,并使用“:”连接

  • 多个名/值对之间用“,”隔开

  • 使用JSON格式定义学生对象

使用JSON数据格式定义对象数组

  • 多个JSON对象放在“[ ]”中

  • 使用JSON格式定义学生对象数组


Sample code:

https://note.youdao.com/s/V7bHSlrl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值