js事件:Ajax基础
2016-10-27 08:28
204 查看
Ajax(Asynchronous Javascript And XML),即异步的javascript和XML,是一种在无需重新加载页面的情况下,能够更新部分网页的技术。
Ajax的编写分为以下四个步骤:
1.创建XMLHttpRequest对象
所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。
创建XMLHttpRequest对象:
IE5和IE6使用ActiveXObject对象:
兼容写法:
2
3
4
5
6
7
2.发送请求
将请求发送到服务器,使用 XMLHttpRequest 对象的 open() 和 send() 方法:
2
open()方法接收3个参数,第一个参数method代表请求的类型,有GET和POST两种。第二个参数url是请求文件的路径。第三个参数代表异步(true)或同步(false)处理。
GET与POST:
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)。
向服务器发送大量数据(POST 没有数据量限制)。
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠,因为通过GET方式发送的请求在浏览器的url上会显示请求的信息。
3.服务器响应
如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
responseText 属性
如果来自服务器的响应并非 XML,使用 responseText 属性。responseText 属性返回字符串形式的响应。
如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,需要使用 responseXML 属性。
4.readystate
onreadystatechange 事件
当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState 改变时,就会触发 onreadystatechange 事件。
readyState 属性存有 XMLHttpRequest 的状态信息,它的值从0到4发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
status属性表示请求的状态:当 readyState 等于 4 且status为 200 时,表示响应已就绪。
2
3
4
5
6
7
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ajax函数的使用:
2
3
4
5
6
其中的url地址后面加上?t=new Date().getTime()用来阻止浏览器的缓存。
Ajax的编写分为以下四个步骤:
1.创建XMLHttpRequest对象
所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。
创建XMLHttpRequest对象:
var ajax = new XMLHttpRequest();1
IE5和IE6使用ActiveXObject对象:
var ajax = new ActiveXObject("Microsoft.XMLHTTP");1
兼容写法:
var ajax; if(window.XMLHttpRequest){ ajax = new XMLHttpRequest(); }else{ ajax = new ActiveXObject("Microsoft.XMLHTTP"); }1
2
3
4
5
6
7
2.发送请求
将请求发送到服务器,使用 XMLHttpRequest 对象的 open() 和 send() 方法:
ajax.open(method,url,async);//连接服务器 ajax.send();//发送请求1
2
open()方法接收3个参数,第一个参数method代表请求的类型,有GET和POST两种。第二个参数url是请求文件的路径。第三个参数代表异步(true)或同步(false)处理。
GET与POST:
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)。
向服务器发送大量数据(POST 没有数据量限制)。
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠,因为通过GET方式发送的请求在浏览器的url上会显示请求的信息。
3.服务器响应
如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
responseText 属性
如果来自服务器的响应并非 XML,使用 responseText 属性。responseText 属性返回字符串形式的响应。
return ajax.responseText;1
如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,需要使用 responseXML 属性。
return ajax.responseXML;1
4.readystate
onreadystatechange 事件
当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState 改变时,就会触发 onreadystatechange 事件。
readyState 属性存有 XMLHttpRequest 的状态信息,它的值从0到4发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
status属性表示请求的状态:当 readyState 等于 4 且status为 200 时,表示响应已就绪。
ajax.onreadystatechange=function(){ if(readyState == 4&&status == 200){ alert('成功:'+ajax.responseText); }else{ alert('失败:'+ajax.status); } }1
2
3
4
5
6
7
将Ajax封装成一个函数:
function ajax(url,fnSucc,fnFail){1
//创建对象
var ajax; if(window.XMLHttpRequest){ ajax = new XMLHttpRequest(); }else{ ajax = new ActiveXObject("Microsoft.XMLHTTP"); }
ajax.open('GET',url,true);//链接服务器
ajax.send();//发送请求
//接收返回
ajax.onreadystatechange=function(){
if(readyState == 4&&status == 200){
fnSucc(ajax.responseText);
}else{
if(fnFail) fnFail();
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ajax函数的使用:
ajax('xxx.txt?t='+new Date().getTime(),function(str){ //eval(str)方法将读取到的字符串转换为数组 alert('请求成功:'+str); },function(){ alert('请求失败'); });1
2
3
4
5
6
其中的url地址后面加上?t=new Date().getTime()用来阻止浏览器的缓存。
相关文章推荐
- JS 面试知识学习历程(第七天) -- 事件、Ajax、存储
- JS基础——事件绑定
- c# asp.net js 实现异步调用 ajax基础
- JS中的事件类型和事件属性的基础知识
- JS基础学习第四天:条件控制语句、循环语句、函数模块、事件等通用代码块
- 移动端JS 触摸事件基础
- JS基础学习第四天:条件控制语句、循环语句、函数模块、事件等通用代码块2
- Web基础 HTML CSS JS JQuery AJAX
- js基础之ajax
- JS 事件基础 事件绑定函数
- js-ajax相关基础知识整理
- js基础-AJAX、file、http进度、同源策略
- JS 事件基础 创建滚动条
- 【js基础】JS事件处理程序
- JS Ajax 请求实例详解(基础入门篇,以.NET MVC 为例)
- WEB前端 | JS基础——(9-3)事件冒泡与绑定
- AJAX开发基础及原生JS操作步骤
- HTML基础第十课(事件绑定,事件捕获和冒泡,ajax)
- js事件基础
- js 跨浏览器基础事件,浏览器检测,判断浏览器的名称、版本号、操作系统