JavaScript学习之旅-15( 原创 )

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

在 上一篇文章 中,主要介绍了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)

img_99294d967bb11ccae0e46dc64e7676be.png
构建XMLHttpRequest对象

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

img_5c219716f8271f16a83ff3d85d3862ea.png
构建对象之后的写法


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

img_c5d8c6be14b0f2114b1202aeebafe903.png
写法

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

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

img_31b636de4e8904a639dbb9d9c0d45b32.png
响应体

但是值得注意的是,当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 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:拿到响应体、解析响应体、设置响应体告知用户信息

因此完整的写法如下:

img_aaf20bc7a41c35851f4f415f333b1bd1.png
AJAX写法

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

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

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

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

相关文章
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
27 0
|
2月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
74 0
|
8天前
|
JavaScript 前端开发 应用服务中间件
node.js之第一天学习
node.js之第一天学习
|
1月前
|
运维 JavaScript 前端开发
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!
|
1月前
|
JavaScript
Vue.js学习详细课程系列--共32节(4 / 6)
Vue.js学习详细课程系列--共32节(4 / 6)
33 0
|
1月前
|
前端开发 搜索推荐 JavaScript
编程笔记 html5&css&js 001 学习编程从网页开始
编程笔记 html5&css&js 001 学习编程从网页开始
|
2月前
|
前端开发 JavaScript
从零开始学习前端开发:HTML、CSS、JavaScript入门指南
【2月更文挑战第1天】本文将带领读者从零开始学习前端开发,介绍HTML、CSS和JavaScript的基础知识与应用,帮助读者快速入门前端开发领域。
64 1
|
2月前
|
数据采集 机器学习/深度学习 JavaScript
画【Python折线图】的一百个学习报告(二、pyecharts引入js文件)
画【Python折线图】的一百个学习报告(二、pyecharts引入js文件)
51 0
|
2月前
|
JSON 前端开发 JavaScript
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
35 0
Webpack【Webpack图片处理、Webpack中proxy代理 、自动清理dist、Webpack优化、JavaScript中的代码检查】(三)-全面详解(学习总结---从入门到深化)
|
2月前
|
资源调度 JavaScript 关系型数据库
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
33 0