AJAX:让js读取服务器的数据
使用Ajax
基础:请求并显示静态TXT文件
注意字符集编码的一致
缓存和阻止缓存的问题(这只是一种方法):‘xxx.txt?t=’Data().getTime()
AJAX读取的任何东西都是以字符串的形式存在
HTTP请求的方法:
get方式,将内容放到url里,跟随uri一起通过网址传递
容量小,因为网址限制,不适合传递大数据
安全性非常差
有缓存
适合用来回来获取数据(如浏览帖子)
post方式,通过http的content,不通过网址
容量大(2G)
安全性相对好一点,真正安全走(HTTPS)
没有缓存
用于上传数据(如用户注册)
AJAX:(类比打电话)
1、创建AJAX对象 手机 XMLHttpRequest()和ActiveXObject(“Microsoft.XMLHTTP”)(IE下用到)
2、连接到服务器 拨号 open
3、发送请求 说 send
4、接受返回值 听 oAjax.onreadystatechange oAjax.readyState
oAjax.readyState==0/1/2/3/4 浏览器和服务器进行到哪一步了
0 未初始化,还没有调用open()方法
1 (载入)已经调用open()方法,正在发送请求
2 (载入完成)send()方法完成,已经收到全部响应
3 (解析)正在解析响应内容
4 (完成)响应内容解析完成,可以在客户端调用了
statue属性,请求结果,判断成功还是失败 一般成功200,失败not found404
responseText 返回文件内容
同步 事情一件一件来 false
异步 多个事情可以一起来(ajax天生就是用来进行异步操作的)true
AJAX数据类型
中文一定要用UTF-8
XML和json数据类型,同等数据XML要大很多,已经淘汰了几乎
一定要统一字符集一般UTF-8
用js实现AJAX的代码
//这里url未对应的文件名,fnSucc和fnFaild为自己编写的的函数
function ajax(url, fnSucc, fnFaild)
{
//1.创建Ajax对象
if(window.XMLHttpRequest)
{
var oAjax=new XMLHttpRequest();
}
else
{
//兼容IE
var oAjax=new ActiveXObject(“Microsoft.XMLHTTP”);
}
//2.连接服务器(打开和服务器的连接)
oAjax.open(‘GET’, url, true);
//3.发送
oAjax.send();
//4.接收
oAjax.onreadystatechange=function ()
{
if(oAjax.readyState==4)
{
if(oAjax.status==200)
{
//alert(‘成功了:’+oAjax.responseText);
fnSucc(oAjax.responseText);
}
else
{
//alert(‘失败了’);
if(fnFaild)
{
fnFaild();
}
}
}
};
}