1,ajax
1,ajax是7种技术的综合,常用到的:html+cssjavascriptXML(xmlHttpRequest对象)xstl
2,ajax可以理解成就是javascript通过操作XML(XMLHttpRequest对象)来完成http请求的过程
什么时候适合使用ajax:
(1)频繁的对数据库(服务器)进行操作的时候
(2)无刷新页面请求(表单验证)
需要javascript和数据库交互:
需要:javascript想要验证用户名有没有重复,需要去数据库查询,但是javascript没有办法去数据库查询,但是可以请PHP(运行在服务器端的语言)帮个忙,将PHP查询的结果告诉我们就可以(XMLHttpRequest对象)
Ajax的优势:
1,传统的web请求,会将表单的数据全部提交到action=””这个地址的服务器上,但是密码,email是没有必要提交过去,而且,对服务器是一种负担
Ajax:原则:“按需取数据”,这样可以降低服务器的压力
验证用户名不能重复
2,视图层
3,开始写代码
1,XMLHttpRequest这个对象和PHP交互,先获得这个对象
//获得ajaxXMLHttpRequest对象(由于浏览器兼容性)
varxhr;
if(window.ActiveXObject){//这是IE浏览器的
xhr=newActiveXObject();
}elseif(window.XMLHttpRequest){//这里是火狐浏览器的
xhr=newXMLHttpRequest();
}
2,get方式发送ajax请求:
模型层的原则是:一张表对应一个模型
什么是回调函数:
步骤:
1,实例化XMLHttpRequest对象
2,open()打开地址栏
3,监听ajax请求的状态
4,send()完成ajax请求
GET方式请求,需要注意:
浏览器为了提高访问同一页面的速度,会先将我们访问的数据缓存起来,如果地址栏不变,相当于访问的是同一个页面,这时浏览器读取的是缓存的数据而不是真实的页面数据解决方法:
Json格式发送集合类的数据
服务器返回给浏览器返回2种数据,
1,字符串;接收:xhr.responseText
2,集合类
Ajax就是javascript通过操作XMLHttpRequest对象完成http请求
@H_911_403@服务器如何给浏览器返回集合类的数据:
Json_encode()编码后,返回的是json格式的字符串,(仍然还是字符串),思路:如何让这个json格式的字符串转化成一个对象
1,先将字符串运行一下通过在字符串上()
2,eval()运行即可
Post方式提交需要注意:
@H_911_403@Xhr.setRequestHeader()
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
@H_911_403@需要注意:
实例化XMLHttpRequest对象时,IE浏览器(newActiveXObject(“Microsoft.XMLHTTP”))
xhr=newActiveXObject("Microsoft.XMLHTTP");
2,信息浮动显示:
异步的概念:
XMLHttpRequest对象把数据传递到服务器的地址后,服务器处理它的,我浏览器处理我的,这样可以减少用户的等待时间,如果是同步或阻塞,必须要等到服务器返回结果后,我浏览器才能处理我的事情,如果数据量大的话,用户等待的时间特别长
Ajax请求和传统的web请求:
Ajax请求:XMLHttpRequest对象发送的请求
varurl="index.PHP?c=user&a=ajax_check&time="+Math.random()+"&username="+username.value;
传统的web请求:
<formaction="index.PHP"method="post">