AJAX快速上手和基本核心
一、快速上手AJAX
使用ajax的过程可以类比平常我们访问网页过程
1.创建一个XMLHttpRequest类型的对象------相当于打开了浏览器
var xhr = new XMLHttpRequest();
2.打开一个网址之间的连接-------相当于在地址栏输入访问地址
xhr.open('GET', 'http://test1.com/ajax/time.php');
3.通过连接连接发送一次请求-------相当于回车或点击访问发送请求
xhr.send();
4.指定xhr状态变化事件处理函数---------相当于处理网页呈现后的操作
xhr.onreadystatechange = function () {
//通过 xhr 的readyState 判断此次请求的响应是否接受完成
if (this.readyState!==4) return;
//通过 xhr 的responseText 获取到响应的响应体
console.log(this.responseText);
}
二、readyState
由于readystatechange 事件是在 xhr 对象状态变化时触发(不单是在得到响应时),也就意味着这个事件会被触发多次,所以得有必要了解每一个状态值代表的含义。

以下是各状态值出现的顺序
<script>
var xhr= new XMLHttpRequest();
console.log(xhr.readyState);
//==>0
//初始化 请求代理对象 xhr.open('GET', 'http://test1.com/ajax/time.php');
console.log(xhr.readyState);
//==>1
//open 方法已经调用 , 建立一个与服务端特定端口的连接 xhr.send(); xhr.addEventListener('readystatechange',function(){
switch (xhr.readyState) {
case 2:
console.log(xhr.readyState);
//==>2
//已经接收到了响应报文的响应头(但是还没有拿到请求体)
break;
case 3:
console.log(xhr.readyState);
console.log(this.responseText);
//==>3
//正在下载响应报文的响应体,有可能响应体为空,也有可能不完整
//在这里处理响应体不保险(不可靠)
break;
case 4:
console.log(xhr.readyState);
//==>4
//整个响应报文已经完整下载下来了
break;
default:
// statements_def
break;
}
}); </script>
AJAX快速上手和基本核心的更多相关文章
- AJAX快速上手
创建XMLHttpRequest对象 xmlHttp = new XMLHttpRequest(); xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); ...
- 【java框架】MyBatis-Plus(1)--MyBatis-Plus快速上手开发及核心功能体验
1.MyBatis-Plus入门开发及配置 1.1.MyBatis-Plus简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变, ...
- 从零开始学 Web 之 Ajax(三)Ajax 概述,快速上手
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 如何快速上手一个新技术之vue学习经验
碰到紧急项目挪别人的vue项目过来直接改,但是vue是18年初看过一遍,18年底再来用,早就忘到九霄云外了,结果丢脸的从打开vue开始学,虽然之前在有道云笔记做了很多记录,然后没有系统整理.所以借这次 ...
- 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)
(目前发现一些文章被盗用的情况,我们将在每篇文章前面添加原文地址,本文源地址:http://www.cnblogs.com/idealer3d/p/Instant_RaphaelJS_Start ...
- MongoDB快速上手
1. MongoDB简介 MongoDB是一个跨平台的基于Key_Value键值对形式保存数据的NoSQL文档类型数据库. NoSQL(not only sql)数据库,泛指非关系型数据库. 1.1 ...
- smarty 快速上手
smarty半小时快速上手入门教程 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-10-27我要评论 这篇文章主要介绍了smarty半小时快速上手入门教程,以实例的形 ...
- smarty半小时快速上手入门教程
http://www.jb51.net/article/56754.htm http://www.yiibai.com/smarty/smarty_functions.html http://www. ...
- knockoutJS 快速上手
翻译:Knockout 快速上手 - 3: knockoutJS 快速上手 许多时候,学会一种技术的有效方式就是使用它解决实际中的问题.在这一节,我们将学习使用 Knockout 来创建一个常见的应用 ...
随机推荐
- adb常用操作命令
1.adb简介: adb,即 Android Debug Bridge.通过这个工具和android进行交互操作 2.adb命令格式: adb [-d|-e|-s <serialNu ...
- Collection集合详解
/*Collection--List:元素是有序的,元素可以重复.因为该集合体系有索引. ---ArrayList;底层的数据结构使用的是数组结构.特点:查询速度很快.但是增删很慢.线程不同步 --- ...
- angularJS--apply() 、digest()和watch()方法
外文网址:http://www.sitepoint.com/understanding-angulars-apply-digest/ $apply()和$digest()在AngularJS中是两个核 ...
- 玩转CSS3(二)---CSS3实现瀑布布局
请珍惜小编劳动成果,该文章为小编原创,转载请注明出处. 觉得腾讯微博微频道里的那种布局方式很好,在这里利用CSS3简单的实现了一下. 先上一张效果图: 代码: pubu.css /* CSS Docu ...
- [TJOI2015] 棋盘
Description 为了提高智商,ZJY去新世界旅游了.可是旅游过后的ZJY杯具的发现要打开通往原来世界的门,必须要解开门上面画的谜题.谜题是这样的:有个\(n\)行\(m\)列的棋盘,棋盘上可以 ...
- NIO(一)——缓冲区Buffer
NIO(一)--Buffer NIO简介 NIO即New IO,是用来代替标准IO的,提供了与标准IO完全不同传输方式. 核心: ...
- 转[@SuppressWarnings详解]
背景知识: 从JDK5开始提供名为Annotation(注释)的功能,它被定义为JSR-175规范.注释是以“@注释名”在代码中存在的,还可以添加一些参数 值,例如:@SuppressWa ...
- LuoguP4234_最小差值生成树_LCT
LuoguP4234_最小差值生成树_LCT 题意: 给出一个无向图,求最大的边权减最小的边权最小的一棵生成树. 分析: 可以把边权从大到小排序,然后类似魔法森林那样插入. 如果两点不连通,直接连上, ...
- ES 19 - Elasticsearch的检索语法(_search API的使用)
目录 1 Search API的基本用法 1.1 查询所有数据 1.2 响应信息说明 1.3 timeout超时机制 1.4 查询多索引和多类型中的数据 2 URI Search的用法 2.1 GET ...
- STM32学习笔记(二):GPIO口工作原理
STM32每个IO口具有7个寄存器来控制,每个IO口都可以自由进行编程控制,我们编程实际上控制的是通过控制那7个寄存器来控制我们的IO口,我们可以通过编程控制IO口,把IO口配置成如下八种模式: 1. ...