天天看点

JavaScript学习之旅-15( 原创 )

在 

上一篇文章

 中,主要介绍了DOM的相关知识,了解了JavaScript 能够改变页面中的所有 HTML 元素、 能够改变页面中的所有 HTML 属性、 能够改变页面中的所有 CSS 样式 、能够对页面中的所有事件做出反应,那么这一篇主要学习非常重要的AJAX。

AJAX为什么重要,我们知道移动互联网的时代联网是必须的,不联网也就是失去了基本传输信息的意义。那么,这个联网的过程开发一般称之为Http协议,为什么AJAX重要,下面的文章会重点介绍。

什么是AJAX?

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。

传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。但是Ajax 是一种用于创建快速动态网页的技术。无需重新加载整个网页的情况下,能够更新部分网页的技术。 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。也就意味可以在不重新加载整个网页的情况下,对网页的某部分进行更新。在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。Google Suggest 使用 AJAX 创造出动态性极强的 web 界面

开始使用:

在Android开发中,做网络请求,首先需要构建一个HttpRequest对象、然后添加具体的请求头或者请求体、然后后台server接受请求体以后返回响应体给Android,Android在根据响应体解析数据告知用户成功或者失败或者其他提示,至此一次网络请求流程大抵就是这样。

同样的在AJAX中,首先需要构建一个XMLHttpRequest 对象。所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象;IE5 和 IE6 使用 ActiveXObject)

JavaScript学习之旅-15( 原创 )

构建XMLHttpRequest对象

构建完请求对象以后,我们在构建请求方式(POST请求还是Get请求)、请求url,写法如下:

JavaScript学习之旅-15( 原创 )

构建对象之后的写法

如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:

JavaScript学习之旅-15( 原创 )

写法

既然已经构建好了http对象、声明请求方式以及请求url,那么如何接受服务器返回给我们的响应体?

使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。其中,responseText 表示获得字符串形式的响应数据;而 responseXML 是指获得 XML 样式的响应数据。

JavaScript学习之旅-15( 原创 )

响应体

但是值得注意的是,当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState(在XMLHttpRequest 对象中) 改变时,就会触发 onreadystatechange 事件。readyState 属性存有 XMLHttpRequest 的状态信息。

readyState存有 XMLHttpRequest 的状态

。状态值一般是 0 - 4,具体数值表达的信息如下:

0:请求未初始化

1:服务器连接已建立

2:请求已接收

3:请求处理中

4: 请求已完成,且响应已就绪

status 代表请求后的状态

200: 表示状态Ok

404:未找到页面

状态码拓展:服务器常用的状态码及其对应的含义如下

 200:服务器响应正常。

 304:该资源在上次请求之后没有任何修改(这通常用于浏览器的缓存机制,使用GET请求时尤其需要注意)。

 400:无法找到请求的资源。

 401:访问资源的权限不够。

 403:没有权限访问资源。

 404:需要访问的资源不存在。

 405:需要访问的资源被禁止。

 407:访问的资源需要代理身份验证。

 414:请求的URL太长。

 500:服务器内部错误。

因此,综合上面的内容我们可以总结下AJAX的用法:

A:构建XMLHttpRequest 对象、声明请求方式、请求头或者请求体、声明请求url

B:利用onreadystatechange 监听请求服务器的状态

C:拿到响应体、解析响应体、设置响应体告知用户信息

因此完整的写法如下:

JavaScript学习之旅-15( 原创 )

AJAX写法

红色矩形是响应体信息,拿到这个信息以后我们就可以将其设置在页面上做信息展示。

本篇文章主要学习的是关于AJAX介绍以及使用。本章的基本内容就结束了。

如果这篇文章对你有帮助,希望各位看官留下宝贵的star,谢谢。

Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果。

继续阅读