AJAX(JSON)


1、什么是 AJAX:
AJAX 是一种用于创建快速动态网页的技术(局部更新数据)
传统的网页(不使用AJAX)如果需要更新内容,必须重载整个网页面
AJAX 通过在后台与服务器进行少量的数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
AJAX(JSON)
AJAX(JSON)
2、AJAX的使用:(前端代码
1)请求对象的创建(做浏览器兼容)
所有现代的浏览器 :new XMLHttpRequest()
老版本ie5,6浏览器:new ActiveXObject("Microsoft.XMLHTTP")
AJAX(JSON)
AJAX(JSON)
2)发送请求
http.open(method,url,async); //1.方法 2.url 3.异步否
http.send(); //发送
AJAX(JSON)
AJAX(JSON)
3)监听状态
http.onreadystatechange=function(){} //每次当状态改变都会调用这个方法
http.readyState // 0:请求没有初始化 :服务器建立连接 2:请求已接受 3:请求处理ing 4:请求完成,响应已经就绪
http.status // 200:"OK" 404:错误
AJAX(JSON)
AJAX(JSON)
4)响应
http.responseXML //如果服务器响应的是xml,就用这个属性
http.responseText /如果服务器响应的是非xml,就用这个
AJAX(JSON)
AJAX(JSON)
3、get、post:
1)get:
get 的信息放在 url 中暴露出来。可以被本地缓存(根据url)
①http.open( ‘get’,’test.txt?name=jack&pwd=123’,true )
这时候,在服务器的 req.url 里就可以得到用户名和密码(jack如果写成中文,就要用 encodeURI(xxx) ,这样服务器才不是乱码)
② 把服务器的数据改了,再次刷新,会发现浏览器得到的数据并没有改变,是因为请求一样时,浏览器是从缓存中提取的数据(用 ie 测试,谷歌可能不会有这个效果)。解决方案:在请求 url 后面加上一个随机数或者时间戳,保证每次的 url 唯一

2)post:
① post请求,传递的数据不要放在 url 中,数据放在 send( ) 方法里
// send( 'name=karen&age=46' )
② post请求,要在 head 中告诉后端发送的数据格式(enctype)
//忘记了就差表单的编码格式
③ post请求,不会有缓存

后端代码:
AJAX(JSON)
AJAX(JSON)

4、数据解析:
1)得到数据以后,我们怎么把数据通过 DOM 操作展示出来?
最直接的方法就是把返回的数据,通过字符串的方法各种剪裁然后展示
eg:
得到的数据:var person=“{name:jack,age:18,info:[‘html’,’css’,’js’,’php’]}”
解析:var name=person.slice(6,10)..........
Document.get...(‘name’).innerHTML=name..........
2)JSON 解析
//为何 json 解析:因为做开发时 json 的数据多如牛毛