Ajax与XMLHttpRequest
来源:互联网 发布:淘宝雷锋侠怎么看 编辑:程序博客网 时间:2024/04/30 14:36
Ajax:
1.什么是Ajax
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 不是新的编程语言,而是一种使用现有标准的新方法。通俗的说就是在不刷新页面与服务器进行交互。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。当然,以前没有使用ajax的时候也是可以通过变通的方式实现”ajax“效果(例如:使用iframej进行伪装)。
2.Ajax的原理:
AJAX 的要点是 XMLHttpRequest 对象。不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的。IE 浏览器使用 ActiveXObject,而其他的浏览器使用名为 XMLHttpRequest 的 JavaScript 内建对象。Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
如图:
3.什么是异步与同步:
简单的说就是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执 行完毕后才会继续运行其他代码页面假死状态解除。
而异步则这个AJAX代码运行中的时候其他代码一样可以运行。
原理:其实ajax的原理就是队列机制,可刚学ajax的时候,就是在想ajax的异步会不会是线程的问题,然而当然不是,js本身就是单线程,所以不存在多线程的说法。所以说ajax的异步与同步的原理我觉得就是队列机制了。
XMLHttpRequest
1.什么是xmlHttpRequest
xmlHttpRequest是Ajax的核心,中文可以解释为可扩展超文本传输请求。Xml可扩展标记语言,Http超文本传输协议,Request请求。XMLHttpRequest对象可以在不向服务器提交整个页面的情况下,实现局部更新网页。当页面全部加载完毕后,客户端通过该对象向服务器请求数据,服务器端接受数据并处理后,向客户端反馈数据。
2.xmlHttpRequest2与xmlHttpRequest的区别:
xmlHttpRequest: 只支持文本数据的传送,无法用来读取和上传二进制文件。传送和接收数据时,没有进度信息,只能提示有没有完成。 受到"同域限制"(Same Origin Policy),只能向同一域名的服务器请求数据。
xmlHttpRequest2:可以设置HTTP请求的时限。 可以使用FormData对象管理表单数据。可以上传文件。 可以请求不同域名下的数据(跨域请求)。可以获取服务器端的二进制数据。可以获得数据传输的进度信息。
3.xmlHttpRequest的创建
XMLHttpRequest 得到了所有现代浏览器较好的支持。唯一的浏览器依赖性涉及 XMLHttpRequest 对象的创建。在 IE 5 和 IE 6 中,必须使用特定于 IE 的 ActiveXObject()构造函数。现在的浏览器一般都支持XMLHttpRequest 对象。
创建代码:
//创建XMLHttpRequest对象的函数function createXHR(){if(typeof XMLHttpRequest!='undefined'){ //判断浏览器的类型return new XMLHttpRequest();}else if(typeof ActiveXObject !='undefined'){var Version=[ //不同版本'MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp'];for(var i=0;i<Version.length;i++){try{return new ActiveXObject(Version[i]);}catch(e){return;}}}else{alert("你的浏览器不支持XMLHttpRequest对象,请更换浏览器。");}}
5.xmlHttpRequest的属性与方法
XMLHttpRequest对象的主要属性:
1. xhr.readyState:XMLHttpRequest对象的状态,等于4表示数据已经接收完毕。
2. xhr.status:服务器返回的状态码,等于200表示一切正常。
3. xhr.responseText:服务器返回的文本数据
4. xhr.responseXML:服务器返回的XML格式的数据
5. xhr.statusText:服务器返回的状态文本。
6. xhr.timeout :设置HTTP请求的时限。
7.xhr.ontimeout:超过时间之后的回调函数。
8.xhr. onreadyStatechange:请求状态改变的事件触发器(readyState变化时会调用这个属性上注册的javascript函数)。
XMLHttpRequest对象的主要方法:
1.open():打开请求方法,与服务器建立连接,设置请求方式,地址,是否异步。
2.send():发送请求,在open()之后调用。表示发送请求,封装参数。
3.SetRequestHeaders():设置头信息,一般在使用post请求的时候使用到。
4.getAllRequestHeaders():获取请求全部头信息。
5.getRequestHeaders():获取头信息。
6.abort():终止请求。
XMlHttpRequest2中还有很多强大的对象属性与方法,在使用的时候才知道它的强大。后面的总结案例中会使用到。
- Ajax与XMLHttpRequest对象
- AJAX与XMLHttpRequest对象
- Ajax与XMLHttpRequest对象
- js与ajax- XMLHttpRequest
- Ajax与XMLHttpRequest
- jquery ajax与js XMLHttprequest
- 初识AJAX与XMLHttpRequest介绍
- ajax XMLHttpRequest 对象 的属性与方法
- XmlHttpRequest CORS 与 AJAX封装类
- html5+ XMLHttpRequest 与mui ajax用法
- Ajax ! XmlHttpRequest
- AJAX XMLHttpRequest
- AJAX--XMLHttpRequest
- Ajax XMLHTTPRequest
- AJAX XMLHttpRequest
- AJAX XMLHttpRequest
- Ajax XmlHttpRequest
- AJAX--XMLHTTPREQUEST
- Sphinx+PHP+Mysql高效搜索web端搭建(windows)
- 几种提升工作效率的Eclipse使用技巧
- 判断用户输入的一个整数是否在以已知数组中
- maven打包出现com.sun.image.codec.jpeg does not exist报错
- 程序的机器级表示
- Ajax与XMLHttpRequest
- aerospike异步处理
- mysql、oracle 分页查询
- .net平台的rabbitmq使用封装
- swift插入或者删除字符串
- 透视摄像机模型
- angularjs 最新安装步骤-2017
- 初识工厂三姐妹
- ext4 ext4_map_blocks