Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。它使用异步数据传输来更新部分网页,而不是整个页面。Ajax可以在不重新加载整个网页的情况下更新部分内容,从而减少了网站的响应时间。
Ajax的创建过程包括以下几个步骤:
1. 创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); 2. 初始化XMLHttpRequest对象 xhr.open("GET", "url", true); 3. 设置回调函数 xhr.onreadystatechange = function(){...}; 4. 发送请求 xhr.send(); 5. 处理服务器响应 if(xhr.readyState == 4 && xhr.status == 200){...}
XMLHttpRequest 是 AJAX 的基础。
XMLHttpRequest 术语缩写为XHR,中文可以解释为可扩展超文本传输请求。
XMLHttpRequest 对象可以在不向服务器提交整个页面的情况下,实现局部更新网页。
XMLHttpRequest的对象用于客户端和服务器之间的异步通信。
它执行以下操作:
所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。
XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。
创建 XMLHttpRequest 对象的语法:
variable=new XMLHttpRequest();
老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:
variable=new ActiveXObject("Microsoft.XMLHTTP");
为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject ::
现在,你已经学会如何创建 XMLHttpRequest 对象了(这是学习AJAX的基础),接下来,在下一章中,您将学习发送服务器请求的知识。
XMLHttpRequest对象的常见属性如下:
属性 | 描述 |
---|---|
onreadystatechange
|
存储函数(或函数名),每当readyState的属性改变时,就会调用该函数。
|
readyState | 存有的XMLHttpRequest的状态从0到4发生变化。
0:请求未初始化 1:服务器连接已建立 2:请求已接收 3:请求处理中 4:请求已完成,且响应已就绪 |
responseText | 以文本形式返回响应。 |
responseXML | 以XML格式返回响应 |
status |
将状态返回为数字(例如,“Not Found”为404,“OK”为200) |
statusText |
以字符串形式返回状态(例如,“Not Found”或“OK”) |
XMLHttpRequest对象的重要方法如下:
方法 | 描述 |
---|---|
abort()
|
取消当前请求。 |
getAllResponseHeaders()
|
以字符串形式返回完整的HTTP标头集。 |
getResponseHeader( headerName )
|
返回指定HTTP标头的值。 |
void open(method,URL) | 打开指定获取或交的方法和URL的请求。 |
void open(method,URL,async) | 与上面相同,但指定异步或不。 |
void open(method,URL,async,userName,password)
|
与上面相同,但指定用户名和密码。 |
void send(content) | 发送获取请求。 |
setRequestHeader( label,value)
|
将标签/值对添加到要发送的HTTP标头。
|
Ajax XMLHttpRequest
第 20 章 续延(continuation)续延是在运行中被暂停了的程序:即含有计算状态的单个函数型对象。当这个对象被求值时,就会在它上...
第 5 章 函数作为返回值上一章展示了 Lisp "把函数作为参数传递" 的能力,它开阔了我们进行抽象的思路。我们对函数能做的事情越...
原文出处: http://chengway.in/post/ji-zhu/core-data-by-tutorials-bi-ji最近花了半个月读完了Raywenderlich家的《Core Data by...
matplotlib是基于Python的绘图库,广泛用于Python科学计算界。它完整支持二维绘图以及部分支持三维绘图。该绘图库致力于能适应广...
jQuery hasClass() 方法jQuery HTML/CSS 方法实例 检查 p 元素是否包含 intro 类:$(button).click(function(){ alert($(p).hasC...