ajax.js 框架,库
干嘛的: 读数据,写数据
有哪些读数据方式: form/href
为什么学: 无刷新读取数据
要求:
必须要在服务器环境下--WAMP
wamp的服务器目录: C:\wamp\www
访问服务文件:
a): 开启wamp服务
b): 本地域名: localhost ~~ C:\wamp\www
www.abc.com ~~ 人家机器:c:\xxx\ooo
web-->sql
本机-->服务器(别人的机器)
本机(浏览器) --> 本地(特殊目录)
<b>用:</b>
ajax('文件地址/文件名.后缀',成功回调,失败回调)
问题1: 缓存问题
解决: 每次访问的地址都在变化
地址+ '?t=' + Math.random()
地址+ '?t=' + new Date().getTime()
问题2: 乱码
解决: html和要读取的文件的编码要保持一致
扩展名给人看的,机器不管,只要数据对了就能读
www.abc.com/data/c?t=0.23424&a=12&b=5
*** 服务器返回的数据,的类型都是字符,需要解析的
写:
1.搞个电话-> 2.拨号->3.表白-->4.被拒、接受
1.创建ajax对象->2.创建连接->3.发送请求->4.接收
创建ajax对象: new XMLHttpRequest()/ActiveXObject
拨号: oAjax.open(提交方式,url,是否异步)
发送: oAjax.send();
接收:
侦听状态oAjax.onreadystatechange=fn
返回状态码 oAjax.readyState
返回http状态码: oAjax.status
返回数据: oAjax.responseText
web-->ajax-->php-->sql-->php-->web
数据交互(和后台交互)靠接口
规矩:有后台定的
规矩==接口(规范)
user.php?act=xxx&user=用户名&pass=密码
ajax(url,success,error) --> url需要拼接口 累
ajax(url,data,success,error)
data --> string
url + ? + data
问题: ie 注册中文名,有问题,传输中文有问题
解决: 转码
web-->url(中文转码)-->php--->sql(中文码,逆转-->中文)
encodeURIComponent(字符) 永远都加,不会有副作用
*** 对字母,数字没效果
get/post方式,用哪个好!!!
后台要求用哪种方式,就用,前端其实用什么方式,没所谓
<b>location:</b>
window.location 返回窗口地址
http://www.abc.com/app/index.html?a=12&b=5#1
location.protocol 返回http: 协议
location.host 返回域名,主机地址 www.abc.com
location.pathname 返回路径 /app/index.html?
location.search 返回数据 a=12&b=5
location.hash 返回锚 #1
<b>ajax新东西</b>
ajax2.0 不兼容 for 手机
获取服务器信息:
oAjax.getResponseHeader(属性) 获取响应头的某个
oAjax.getAllResponseHeaders() 获取所有
oAjax.timeout=2000; //设定超时
oAjax.ontimeout=fn 超时之后所指向的函数
formdata对象: 表单数据对象
创建formdata对象: new FormData();
new FormDate(页面表单对象) 数据从页面表单里面取
添加数据给formdata对象: oFormData.append('a',12);
*** 表单数据对象必须以post方式提交
oAjax.onload=fn 代替了onreadystatechange
oAjax.onabort=fn 发生中断时
oAjax.onerror=fn 发送错误
oAjax.onprogress=fn 进度
ev.loaded 已经完成
ev.total 共有多少