一、定义
Ajax即Asynchronous JavaScript and XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
二、技术
1.JavaScript
2.XML、XSLT
3.DOM
4.XHTML
5.CSS
6.XMLHttpRequest
三、优缺点
1.优点
(1)无刷新更新数据
(2)与服务器进行异步通信(flash、iframe、XMLHttpRequest)
(3)平衡前端和后端负载(按需加载)
(4)基于标准被广泛支持
(5)数据与页面分离
2.缺点
(1)破坏浏览器的后腿功能
(2)安全问题
(3)对搜索引擎支持较弱
(4)对移动设备支持不好
(5)破坏程序的异常处理机制
(6)违背URL和资源定位的初衷
客户端代码冗余
四、GET&POST
GET是从服务器上请求数据,POST是发送数据到服务器。
GET:
1.参数附加在CGI程式的URL后直接传给server,并可从server端的QUERY_STRING环境变量中读取(通过URL请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于action属性所指程序的URL后);
2.使用Request.QueryString()获取提交内容;
3.传输的数据量非常小,一般限制在2 KB左右;
4.执行效率较好,安全性差;
5.有缓存。
POST:
1.参数会被打包在数据报中传送给server,并可从CONTENT_LENGTH环境变量中读取。
2.使用Request.From()访问提交内容
3.传输数据量相对较大,但也有字节限制,以避免对服务器用大量数据进行恶意攻击;
4.执行效率较差,安全性较好;
5.无缓存。
五、Ajax Code
1.JavaScript
//创建XMLHttpRequest对象
function creatXMLHttpRequest(){
var xhr=null;
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera,Safari
xhr=new XMLHttpRequest();
if(xhr.overrideMimeType )
{
//修正某些特定版本的mozillar浏览器的bug
xhr.overrideMimeType("text/xml");
}
}
else
{
// codefor IE6, IE5
xhr=newActiveXObject("Microsoft.XMLHTTP");
}
return xhr;
}
//主函数执行ajax
functionajax(url,fnSucc,fnFaild)
{
//创建XMLHttpRequest对象
varxhr=creatXMLHttpRequest();
//注册回调函数
xhr.onreadystatechange=callback;//回调函数名
//连接服务器
xhr.open("get/post",url,true);//异步传输
//发送请求
xhr.send(null/string);//
//回调函数接受并处理响应信息
function callback()
{
if (xhr.readyState==4)
{
if(xhr.status==200)
{
fnSucc(xhr.responseText);
}
else
{
if(fnFaild){fnFaild(xhr.Status);}
}
}
}
}
2.jQuery
(1)$(selector).load(url,data,function(data,status,xhr));
从服务器加载数据,并把返回的数据放入被选元素中
(2)$.get(url,data,function(data,status,xhr),dataType)
使用AJAX的HTTP GET请求从服务器加载数据
$.post(url,data,function(data,status,xhr),dataType)
使用AJAX的HTTP POST请求从服务器加载数据,一般用于向指定的资源提交要处理的数据
(3)$.ajax({
type:get/post,
url:url,
data:{
},
dataType:html/xml/json/jsonp/text/script,
success:function(result,status,xhr){
},
error:function(xhr,status,error){
}
})
六、读取文件
1.被读取的txt文件的字符集编码格式应设置为UTF-8
2.阻止缓存
'url?time='+new Date().getTime()
'url?time='+Math.random()
3.eval(string)函数:计算某个字符串,并执行其中的的JavaScript代码,可用于读取Array和Json。