Ba la la la ~ 读者朋友们,大家好,冷锋时间,话不多说,发车!
一、什么是ajax?
异步的Javascript和xml ajax并不是一门新的技术 而是由html css js xml等技术的组合
二、ajax的核心对象
XMLHttpRequest
三、ajax的原理
客户端调用ajax引擎,由ajax引擎请求服务器,服务器将处理完的数据返回给ajax引擎,由ajax引擎决定着将返回的结果写入页面的什么位置,从而实现了页面的无刷新更新数据(局部刷新)
四、异步与同步
同步 在同一时间内只干一件事情 false
异步 在同一时间内能干多件事情 true
五、ajax的优缺点:
优点:
1、可以无刷新的更新数据 提高用户体验
2、减轻服务器的压力
3、 调用其他接口的一个方便的先河 只需一个 url 几个参数就可
4、 实现了及时通讯系统缺点:
1、不利于搜索引擎的优化(seo)
2、缓存比较严重
六、传统的 ajax
代码及注释:
// 1. 创建XMLHttpRequest
var obj=new XMLHttpRequest()
// 2. 通过 open 方法来连接服务器
// open (method,url,async)
// method : 是请求方法 post 或 get (默认)
// url : 路径
// async : 设置同步或者异步 异步 true 同步 false (默认为 异步 true)
obj.open("get","http://127.0.0.1:3000/",true)
// 3. 通过 send 方法来发送数据
// 如果请求方法为 get ,需要发送一个空
obj.send(null)
// 4. 需要知道的事件 onreadystatechange 当属性 readyState 的值发生改变的时候会触发该事件
// 5. 属性 readyState 请求状态值
// 0 XMLHttpRequest 还没有完成初始化
// 1 已经开始发送数据 已经调用完 open 还没有调用 send
// 2 数据已经发送完成, 已经调用完 send
// 3 已经接收到服务器的部分数据,但是还没有全部接收完
// 4 已经接收到全部的数据, 响应结束
// 6. 属性 status http状态码 200 表示成功
obj.onreadystatechange=function () {
// 请求成功时
if(obj.readyState==4&&obj.status==200){
// 弹出
alert(obj.responseText)
}
}
// 7. 属性 responseText 为响应值
七、JQuery简化后的ajax
代码及注释:
$.ajax({
url:"", // 请求路径
data:{"键":值}, // 向服务器发送的数据
type:"post/get", // 默认的为 get
datatype:"", // 数据类型
async:true/false, // 设置请求是同步 或者 异步
success:function(e){
// 请求成功后执行的回调函数
}
})
八、个人对ajax的理解
ajax在项目当中是当作异步传输模式来做的,异步传输时相当于同步来说的,当我们按下F5刷新页面时,那么整个页面在浏览器中都会被更新数据,而当我们须要部分数据更新时,这时候我们调用ajax,ajax会刷新这一部分数据而不刷新整张页面,这就是异步传输。 而对于我们实现ajax来说,一般分为这么几种情况,第一种情况是原生的ajax 第二种是被jQuery简化过后的ajax其中原生的ajax是这样的,首先应该创建ajax对象,这时候应该考虑兼容性,然后调用open()方法打开ajax的链接,里面写的属于有get/post,url,true/false(是否同步异步),建立连接后,开始执行send()的方法请求数据,在这个过程中,需要调用一个监听事件onreadystateChange,在监听过程中有5个状态值,当状态值为4表示执行完毕 当状态码为200时,执行成功,然后把请求的数据responseText,然后再进行遍历,执行页面操作。 jQuer简化后的ajax,$.ajax调用的时候里面有几个重要的参数type、url、dataType、success、error这些就是原生中对应参数的值
以上为个人意见,如有雷同,纯属巧合,欢迎大家多提意见!Bey 了 个 Bey ~