ajax 异步的 JavaScript 和 xml
异步的 javascript 和 数据传输
xml 数据传输格式 (大型的门户网站 新浪、网易 、凤凰网)
优点:
1.种类丰富
2.传输量非常大
缺点:
- 解析麻烦
- 不太合适轻量级数据
json 数据传输格式(字符串)95%移动端应用
优点:
- 轻量级数据
- 解析比较轻松
缺点:
- 数据总类较少
- 传输数据量较小
JSON.parse()
JSON.stringify()
【注】 任何一个小程序都是由很多个小程序组成的
【注】用来描述一个程序运行状态
同步 阻塞 当前程序运行,必须等待前一个程序运行完毕以后,才能运行
异步 非阻塞 当前程序运行,和前面程序的运行没有任何关系
ajax下载数据
var btn = document.getqueryselector('#btn')
btn.onclick = function(){
//1. 创建ajax对象
var xhr = null
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest()
}else{
xhr = new ActiveXObject('Misrosoft.XMLHttp')
}
//2.调用open
/*
第一个参数: 请求方式 get post
第二个参数: url
第三个参数: 是否异步
true 同步
false 异步
*/
xhr.open('get','url',true);
//3.调用send
xhr.send();
//4. 等待数据响应
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
console.log(xhr.reponseText)
}
}
}
ajax 兼容问题
var xhr = null
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest()
}else{
xhr = new ActiveXObject('Misrosoft.XMLHttp')
}
try_catch
try{
尝试执行的代码
}eatch(error){
error 错误对象 , try 括号中代码 执行的异常信息;
补救代码
}
执行过程
1. 先去执行try中的代码
1. 如果try中的代码执行正常,catch中代码不执行
1. 如果try中代码执行异常,直接执行catch中的代码进行补救
【注】更多的用在代码调试和后期维护
try{
console.log('异常信息之前')
console.log(num)
console.log('异常信息之后')
}catch(error){
consloe.log('补救代码,Error:' + error)
}
var num = 10
try{
console.log(`异常信息之前`)
console.log(`异常信息之后`)
console.log(3)
if(num != 5){
throw new Error(`num的值不是5`)
}
}catch(error){
console.log(`补救代码,Error ${error}`)
}