一、快速上手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快速上手和基本核心的更多相关文章

  1. AJAX快速上手

    创建XMLHttpRequest对象 xmlHttp = new XMLHttpRequest(); xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); ...

  2. 【java框架】MyBatis-Plus(1)--MyBatis-Plus快速上手开发及核心功能体验

    1.MyBatis-Plus入门开发及配置 1.1.MyBatis-Plus简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变, ...

  3. 从零开始学 Web 之 Ajax(三)Ajax 概述,快速上手

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  4. 如何快速上手一个新技术之vue学习经验

    碰到紧急项目挪别人的vue项目过来直接改,但是vue是18年初看过一遍,18年底再来用,早就忘到九霄云外了,结果丢脸的从打开vue开始学,虽然之前在有道云笔记做了很多记录,然后没有系统整理.所以借这次 ...

  5. 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)

       (目前发现一些文章被盗用的情况,我们将在每篇文章前面添加原文地址,本文源地址:http://www.cnblogs.com/idealer3d/p/Instant_RaphaelJS_Start ...

  6. MongoDB快速上手

    1.  MongoDB简介 MongoDB是一个跨平台的基于Key_Value键值对形式保存数据的NoSQL文档类型数据库. NoSQL(not only sql)数据库,泛指非关系型数据库. 1.1 ...

  7. smarty 快速上手

    smarty半小时快速上手入门教程 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-10-27我要评论 这篇文章主要介绍了smarty半小时快速上手入门教程,以实例的形 ...

  8. smarty半小时快速上手入门教程

    http://www.jb51.net/article/56754.htm http://www.yiibai.com/smarty/smarty_functions.html http://www. ...

  9. knockoutJS 快速上手

    翻译:Knockout 快速上手 - 3: knockoutJS 快速上手 许多时候,学会一种技术的有效方式就是使用它解决实际中的问题.在这一节,我们将学习使用 Knockout 来创建一个常见的应用 ...

随机推荐

  1. Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS

    本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密 ...

  2. 25.创业真的需要app吗?真的需要外包吗?

    两个星期前,一名亲戚的朋友打算投入自己的二十多万元去搞个摄影社交app,问我有没有靠谱的外包推荐,我赶紧劝住他,现在app的成本已经非常高了,初期的研发就要十几万,加上后期的推广(每个用户成本大概2元 ...

  3. yii2.0 app上集成支付宝支付

    1.首先从支付宝官网下载支付宝app支付sdk 地址 : https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.hLEa5O&a ...

  4. scapyd部署出现的问题的解决方案

    使用scrapyd-deploy部署时,发现spiders为0的排查,首先用 scrapy list 看一下是否可以识别 windows下 scrapyd-deploy无后缀文件不能启动: 解决方案一 ...

  5. get.go

    //获取空间文件 ))     resp, err := http.DefaultClient.Do(req)     if err != nil {         return nil, err ...

  6. bzoj3289 Mato的文件管理 莫队+树状数组

    求逆序对个数,莫队套树状数组 #include<cstdio> #include<iostream> #include<cstring> #include<c ...

  7. Centos打开、关闭、结束tomcat,及查看tomcat运行日志

    cd到tomcat目录下之后 启动:一般是执行sh bin/startup.sh 停止:一般是执行sh bin/shutdown.sh查看:执行ps -ef |grep tomcat 输出如下 *** ...

  8. 【SAP HANA】新建账户和数据库(2)

    开启HANA Studio,进入到User和Role的目录,这两个地方是创建账号和权限的. 新建用户 输入用户名和密码即可. 注意,如果系统里有同名的Catalog(数据库)存在的话,会报错,因为默认 ...

  9. kubernetes 微服务西游记(持续更新中...)

    随着微服务架构的流行,迈向云原生的趋势,容器化微服务就成为了持续集成最好的手段,镜像成为了持续交付最好的产物,容器成为了镜像运行最好的环境,kubernetes成了部署容器最好的生态系统和规范.实践出 ...

  10. APP测试要点—UI、功能测试

    一.UI测试 测试用户界面(如菜单.对话框.窗口和其它可规控件)布局.风格是否满足客户要求.文字是否正确.页面是否美观.文字.图片组合是否完美.操作是否友好等. UI测试的目标是确保用户界面会通过测试 ...