什么是ajax
Asynchronous JavaScript and XML(异步JavaScript和XML)。作用1、节省用户操作,时间,提高用户体验,减少数据请求。2、传输获取数据
使用Ajax:使用Ajax获取某一文本文件的内容 ,可以使页面在无刷新的情况下去获取数据。因为网页是单次请求的,如果不再去刷新,请求的话,页面是不会变化的。
Ajax过程详解:
1 |
|
表单
表单:数据的提交
action | 数据提交的地址,默认是当前页面 |
---|---|
method | 数据提交的方式,分为get和post,默认是get |
enctype | 提交的数据的格式,默认是application/x-www-form-urlencoded |
get方式:把数据名称和数据对应的数据值用=连接,如果有多个的话,那么他会把多个数据组合用&进行连接,然后把数据放到url?的后面传到指定页面。url长度限制的原因,我们不要通过get方式传递过多的数据
post方式:理论上传递数据长度无限制
数据的获取
onreadystatechange事件
readyState属性 | 请求状态 |
---|---|
0 | 未初始化,还没有调用open()方法 |
1 | 载入,已调用send()方法,正在发送请求 |
2 | 载入完成,send()方法完成,已收到全部响应内容 |
3 | 解析,正在解析相应内容 |
4 | 完成,相应内容解析完成,可以在客户端调用了 |
status属性:服务器请求资源的状态
responeseText | 返回以文本形式存放的内容 |
responseXML | 返回XML形式的内容 |
ajax获取数据的处理和实例
JSON
chrome,ie7以上都支持,Ie7和Ie7以下不支持。可以去json.org官网下载对应的语言的包,来支持json互转。
1 |
|
stringify
可以把一个对象转换成一个字符串。
1 |
|
parse
可以把字符串转换成对应的对象。
1 |
|
实例:获取并显示新闻数据
php后端部分:getNews.php
1 |
|
前端部分:
1 |
|
应用中get和post的区别处理
get方式:缓存问题
解决方法:在url?后面连接一个随机数,时间戳。
get方式:中文乱码问题
解决方法:编码encodeURI,中文进行编码再传输。
1 |
|
post方式:
数据放在send()方法里面作为参数传递,记得要申明发送的数据类型。
注意:post方式没有缓存问题,因为是往服务器提交数据,不产生缓存。post方式,中文也不会乱码,无需编码
1 |
|
后端部分:
1 |
|