1.什么是ajax:
(异步的javascript和xml),ajax并不是一门新的技术,而是多种技术的组合(html,js,xml,css)用于快速的创建动态的网页,能够实现无刷新更新数据从而提高了用户体验
2.ajax的原理:
由客户端请求ajax引擎,在由ajax引擎请求服务器,服务器作出一系列的响应之后将结果返回给ajax引擎,由ajax引擎决定将这个结果写入到客户端的什么位置,从而实现了页面无刷新更新数据
3.核心对象 :
XMLHttpReques
4:优缺点
优点:能够减轻服务器的负担页面无刷新提高用户体验
缺点:不利于seo搜索引擎的优化
5.GET 和POST
get和post是最常用的两种HTTP请求方法,前者用于获取数据,后者用于修改数据。来自w3的对比:
方法GET POST
后退按钮/刷新无害数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
书签可收藏为书签不可收藏为书签
缓存能被缓存不能缓存
编码类型application/x-www-form-urlencodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
历史参数保留在浏览器历史中。参数不会保存在浏览器历史中。
对数据长度的限制是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。无限制。
对数据类型的限制只允许 ASCII 字符。没有限制。也允许二进制数据。
安全性与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。
可见性数据在 URL 中对所有人都是可见的。数据不会显示在 URL 中。
注:关于URL 的长度是受限制的这一点是不对的,HTTP协议并没有限制URI的长度,具体的长度是由浏览器和系统来约束的。
6.Ajax实现步骤
// 1 .创建Ajax对象
let xhr = new XMLHttpRequest();
console.log(xhr.readyState); //0 初始值
// 2明确请求地址和请求方式,初始化请求
// 请求方式有四种: GET,POST,PUT,DELETE 常用的
// 请求直至包括: 真实的后台接口, 本地的JSON文件, 注意: 支持本地JSON文件只支持GET
xhr.open('GET', './stus.json')
console.log(xhr.readyState); //1 发送请求
//3 发送请求
xhr.send()
4. // 设置请求头信息,定义Content-Type的格式
// application/x-www-form-urlencoded表示参数数据的格式是url格式
// xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
// application/json表示参数数据的格式是json格式
xhr.setRequestHeader('Content-Type','application/json')
// 5 注册一个onreadystatechange,监听回传的值
xhr.onreadystatechange = function() {
//readyState读取状态值变为2,表示请求发送成功
//readyState读取状态值变为3,表示服务器成功接收到请求并开始响应
//readyState读取状态值变为4,表示服务器响应完成
console.log(xhr.readyState);
// 请求已经完成
if (xhr.readyState === 4) {
// status响应状态码:200表示成功,404表示资源不存在,500是服务器错误
if (xhr.status === 200) {
// JSON.parse()方法,用于将JSON格式的字符串转为js对象
let date = JSON.parse(xhr.responseText)
console.log(date);
}
}
}