一.ajax
1.创建ajax对象
主流浏览器: var xhr = new XMLHttpRequest();
ie 6.7.8 : var new = ActiveObject();
2.ajax 对象成员属性和方法
属性:readyState responseText responseXML onreadystatechange
方法:open() send() setRequestHeader()
3.get请求和post请求注意事项
get请求注意
a.在url地址后边通过请求字符串传递get参数信息
b.对于特殊符号,中文需要编码encodeURLComponent()
post请求注意:
a.在sent()方法里传递参数
b.需要在open()方法之后调用setRequestHeader()方法[把传递的信息组织为xml格式]
c.特殊符号需要编码
d.可以同时传递get参数信息,并使用$_GET接受
4.异步请求和同步请求
ajax对象.open(get,url,true异步/false同步);
异步:在同一个时间点允许执行多个进程
同步:在同一时间点允许执行一个进程
5.对xml的接受和处理
ajax负责去服务器请求xml信息,使用reponseXML属性接收
js里边的DOM技术负责处理xml信息(与处理html方式一致)
6.缓存处理
a.给请求地址设置随机数
b.给动态程序文件设置header头,避免浏览器缓存
2.ajax出现的历史
1999年,微软公司发布ie5浏览器的时候嵌入的一种技术。起初名字是XMLHttp
直到2005年ajax才开始流行,该年google公司发布一个邮箱产品gmail,内部的gtalk聊天工具使用ajax技术,该事件引起人们对ajax的注意,并促成其广泛使用,同时使得向来不被重视的javascript语言得到大家的青睐
3.ajax技术是许多旧技术的集合
xhtml , css , javascript,xml,xmlhttprequest对象(ajax对象)
其中xmlhttpRuqusest是ajax的官方的名称
二.ajax 使用
1.创建ajax对象
1.1主流浏览器方式
火狐,google 苹果 opera 包括ie7以上版本的浏览器
a.主流浏览器(firefox,chrome,safar,opera,IE7以上)
var xhr = new XMLHttpRequest();
console.log(xhr);
1.2 ie( 6 / 7 / 8 )
b.IE浏览器创建
var new = ActiveObject("Microsoft.XMLHTTP");//最原始的方法
var new = ActiveObject("Msxml2.XMLHTTP");//升级
var new = ActiveObject("Msxml2.XMLHTTP.3.0");//升级
var new = ActiveObject("Msxml2.XMLHTTP.5.0");//升级
var new = ActiveObject("Msxml2.XMLHTTP.6.0");//微软维护最高版本6.0
alert(xhr);
2.发起对服务器的请求
3.
二.JSON
1.什么是json
json:javascript object notation (javascript对象符号)
其实是我们学过的js “字面量对象”
其实是一种 数据交换格式 (之前的xml也是数据交换格式)。
之前用户网站需要获得天气信息,通常会把天气预报官网首页的全部信息都给请求回来,但是只是在里面获得很少的天气信息,这样做对宽带,天气官网的服务器,用户等待时间的消耗比较严重
这个事件做优化处理:天气预报网站服务器把天气做成一个数据接口提供出来,好处是用户网站每次请求天气信息的宽带变小,请求速度加快,天气预报网站服务器的损耗得到控制
为了各种语言(java/php/.net/javacsript)的网站用户方便使用数据接口,其接口的数据格式最好是大家可以识别的,因此json/xml就被应用上了
json的生成和处理要比xml更加方便,因此在许多领域json正在逐步取代xml 的使用
一个具体的天气预报的接口 :
http://v.juhe.cn/weather/index?format=2&cityname=%E8%8B%8F%E5%B7%9E&key=%E6%82%A8%E7%94%B3%E8%AF%B7%E7%9A%84KEY
2.json的使用
json在javascript里边就是个字面量对象
var obj = {名称:值 , 名称:值 , 名称:function(){} }
2.2通过php生成json信息
json_encode (数组/对象)---------》生成json信息
json_encode (关联数组)---------》json对象
json_encode (索引数组)---------》json数组
json_encode (索引关联数组)---------》json对象
json_encode (对象)---------》json对象
2.3php处理json信息
json_decode(json信息);反编码json信息