ajax学习 js原生
来源:互联网 发布:类似tnt的网络邮箱 编辑:程序博客网 时间:2024/06/14 07:13
php工程师肯定对ajax技术不会陌生。简单的说,ajax可以网页在不全部刷新的情况下,从服务器拿到数据,并且借助js可以直接改变网页,是一种很实用的技术。我一般常用的是jQuery封装好的ajax。虽然原生ajax的缺点很多,不过,先对原生js的ajax学习一下是很有必要的。下面结合一个简单的例子进行讲解。
1.兼容性
首先就要考虑到浏览器的不同,大部分浏览器是通过XMLHttpRequest对象来实现ajax的,而IE5 IE6是以ActiveXObject的方式引入XMLHttpRequest。兼容工作一定要做好。
var xmlHttpReq = null;//声明一个空对象用来装入XMLHttpRequestif (window.ActiveXObject){//IE5 IE6是以ActiveXObject的方式引入XMLHttpRequest的xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");} else if (window.XMLHttpRequest){//除IE5 IE6 以外的浏览器XMLHttpRequest是window的子对象xmlHttpReq = new XMLHttpRequest();//实例化一个XMLHttpRequest}
2.通过open方法取数据
在实例化成功之后就可以通过open方法提取数据了
if(xmlHttpReq != null){//如果对象实例化成功 xmlHttpReq.open("GET","test.jsp",true);//调用open()方法并采用异步方式xmlHttpReq.onreadystatechange=RequestCallBack; //设置回调函数xmlHttpReq.send(null);//因为使用get方式提交,所以可以使用null参调用}
注意到open方法里面的第三个参数true,这是代表异步ajax。异步ajax的意思是js的其他方法不会等这个ajax运行完成之后再运行,而是和ajax同一时间运行的。ajax一般情况下都是用异步。在某些特殊情况下,比如必须要先拿到这次ajax提取的数据才能运行其他js方法的时候,就可以考虑同步ajax了。
3.将ajax取到的数据显示在界面上
function RequestCallBack(){//一旦readyState值改变,将会调用这个函数if(xmlHttpReq.readyState == 4){if(xmlHttpReq.status == 200){//将xmlHttpReq.responseText的值赋给ID为 resText 的元素document.getElementById("resText").innerHTML = xmlHttpReq.responseText;}}}
注意,readystate代表的ajax的状态,4表示取值完成。xmlhttpreq.status 代表的是http的状态 200为正常。
这样,一个简单的原生ajax就写好了,下次讲jQuery下的ajax,$.ajax() 比原生好用多了
阅读全文
1 0
- ajax学习 js原生
- js学习日记--原生ajax
- AJAX学习笔记之原生JS使用方法
- 《学习日记》原生JS写ajax
- 原生js封装Ajax
- 原生js实现Ajax
- js原生ajax
- 原生js ajax
- 原生js写ajax
- 原生js实现ajax
- 原生js ajax 实例
- 原生JS实现Ajax
- ajax原生js写法
- 原生js实现ajax
- 原生JS的ajax
- 原生js ajax 操作
- 原生JS Ajax操作
- 原生JS Ajax操作
- Android的静默安装
- MFC界面 坐标获取/转换 及 区域获取
- 局部内部类访问局部变量
- 浅谈Linux中的线程
- dubbo 请求调用过程分析
- ajax学习 js原生
- 关于SQL表设计和查询的思考
- linux
- C++缺省参数函数简介和使用
- 纹理分割(二):2d-gabor 滤波器
- python3 文件操作
- Mapstruct使用问题Couldn't retrieve @Mapper annotation
- 9.JavaScript深入之参数按值传递
- java中访问控制符public、private、protected、default之间的区别