什么是Ajax
Asynchronous JavaScript And XML(异步JS和XML):js发请求和收响应。
Ajax的优缺点
优点:
- 异步模式,提升用户体验
- 优化浏览器及服务器之间的传输,减少不必要的数据往返,减少带宽占用
- AJax引擎在客户端运行,承担了部分本来由服务器承担的工作,从而减少大用户量下的服务器负载
缺点:
- 不支持浏览器back按钮
- 安全问题:暴露了与服务器交互的细节
- 对搜索引擎的支持比较弱
- 破坏了程序的异常机制
- 不易调试
Ajax的使用
创建XMLHttpRequest对象
const request = new XMLHttpRequest()
调用对象的open方法
request.open('GET','./文件名')
监听对象的onreadystatechange事件
request.onreadystatechange = () =>{}
调用对象的send方法(发送请求)
request.send()
onreadystatechange事件
每当readyState改变时,就会触发onreadystatechange事件。 onreadystatechange储存函数,每当readyState属性改变时调用;readyState储存XHR的状态;
readyState属性:
0:请求未初始化 //const request = new XMLHttpRequest()
1:请求连接已建立 //request.open('GET','./文件名')
2:请求已接受 //request.send()
3:请求处理中 //第一个出现在浏览器上
4:请求已完成,响应就绪 //下载完成
status:
200:OK
404:未找到页面
status:HTTP状态码
1xx(临时响应):表示临时响应并需要请求者继续执行操作
2xx(成功):表示成果处理了请求
3xx(重定向):表示要完成请求需要进一步操作,通常用于重定向
4xx(请求错误):表示可能出错,妨碍了服务器的处理
5xx(服务器错误):表示服务器在尝试处理请求时发生内部错误,这些错误可能是服务器本身的错误,而不是请求出错
getJson.onclick = () =>{
const request = new XMLHttpRequest()
request.open('GET','/5.json')
request.onreadystatechange =() =>{
if(request.readyState === 4){
if(request.status >= 200 && request.status < 300){
const object = JSON.parse(request.response)
console.log(object)
myName.textContent = object.name
}
}
}
request.send()
}
什么是JSON
JSON(JavaScript Object Notation)js对象标记语言。
JSON语法格式
{"name": "Jom"}
{"age": "3"}
{"sex": "男"}
JSON支持类型
String
Number
Object
Array
true
false
null
转化
JSON.parse() 把符合JSON的转成js对应类型的数据
JSON.stringify js数据转成JSON字符串
JSON具体语法可参考 json.org/json-zh.htm…