您的位置:首页 > Web前端 > JavaScript

JS实现Ajax的方法分析

2016-12-20 00:00 375 查看
本文实例分析了JS实现Ajax的方法。分享给大家供大家参考,具体如下:

一、什么是Ajax

不刷新的情况下读取数据或提交数据

(最早出现ajax:谷歌地图,拖动一下出现一片新的视野)

应用:用户注册、在线聊天、微博

特性:只能从服务器上去读取数据(所以我们需要配置自己的服务器程序AMP)

二、使用Ajax

1.基础:请求并显示静态TXT文件

btn.onclick=function(){
ajax('abc.txt',function(str){
alert(str);
});
}


①Ajax里面文件的编码要和页面的编码一致

②缓存、阻止缓存(好处大于缺点,所以不能什么时候都清缓存)

缓存能帮助我们加速网络访问,所谓缓存,就是服务器上这个文件,它只读一次,第二次就从你的硬盘里、缓存里直接去拿,而不是真的通过网络来请求

有时候我们需要阻止缓存(比如服务器上东西变化了,但客户端请求来的还是原来的东西),办法如下,加时间戳:

ajax('abc.txt?t='+new Date().getTime(),function(str){});
//new Date().getTime()为现在的毫秒数,用户绝对不可能在1毫秒内点两次,所以每次请求的t都不一样


2.动态数据:请求Js(或json)文件

Ajax从服务器上读取的所有东西都是以文本的形式(字符串)存在的,如何转换?

eval()计算字符串里的值

ajax('abc.txt',function(str){
var arr=eval(str);
alert(arr);
});


例子:分页

<ul id="list">
</ul>
<a href="#"></a>
<a href="#"></a>
<a href="#"></a>


window.onload=function(){
var oUl=getElementById("list");
var aBtn=getElementsByTagName("a");
var i;
for(i=0;i<aBtn.length;i++){
aBtn[i].index=i;
aBtn[i].onclick=function(){
ajax('page'+(this.index+1)+'.txt',function(str){
var aData=eval(str);
oUl.innerHTML='';
for(i=0;i<aData.length:i++){
var oLi=document.createElement("li");
oLi.innerHTML='<strong>'+aData[i].user+'</strong><i>'+aData[i].pass+'</i>';
oUl.appendChild(oLi);
}
});
};
}
};


三、Ajax原理

HTTP请求方法

1.GET--用于获取数据(如浏览贴子) 把数据放在URL(网址)里面来提交 安全性低、容量低、便于分享(将网址发给别人)

2.POST--用于上传数据(如用户注册) 把数据放在不是URL的地方 安全性一般、容量几乎无限、不便于分享

四、封装一个自己的Ajax函数

1.创建Ajax

2.连接服务器

3.发送请求

4.接收返回

function ajax(url,fnSucc,fnFaild){
//1.创建
var oAjax=null;
if(window.XMLHttpRequest){ //对ie6来说,直接用XMLHttpRequest是不存在的会出错
oAjax=new XMLHttpRequest(); //ie6以上
}else{
oAjax=new ActiveXObject("Microsoft.XMLHTTP"); //ie6
}
//2.连接服务器,open(方法,url,是否异步)
oAjax.open('GET',url,true);
//3.发送请求
oAjax.send();
//4.接收返回 OnReadyStateChange
oAjax.onreadystatechange=function(){    //onreadystatechange事件
if(oAjax.readyState==4){ //readyState属性:请求状态 4是完成(完成不代表成功)
if(oAjax.status==200){ //status属性:请求结果 200代表成功
fnSucc(oAjax.responseText); //responseText属性:服务器发回给我们的内容
}
else{
if(fnFaild){
fnFaild();
}
}
}
};
};


更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript中ajax操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

您可能感兴趣的文章:

详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
JavaScript Ajax实现异步通信
JS 拦截全局ajax请求实例解析
JavaScript中浅讲ajax图文详解
Ajax与用户交互的JSON数据存储格式
$.ajax json数据传递方法
jQuery Ajax异步处理Json数据详解
浅析ajax请求json数据并用js解析(示例分析)
javascript实现原生ajax的几种方法介绍
用ajax动态加载需要的js文件
ThinkPHP中使用ajax接收json数据的方法
ThinkPHP通过AJAX返回JSON的两种实现方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JS Ajax