首页投稿(暂停使用,暂停投稿)前端开发

Ajax 全接触

2016-06-03  本文已影响209人  我是DIV啊

以下文章为根据慕课网:Ajax全接触整理而得的文字笔记版,以便随时翻阅学习。但是本文未引用视频课程中的示例,使用示例将在今后的文章中单独写出。且最后一章《处理跨域方式》不做整理,如需要,请上慕课网官网进行学习。

一. 课程介绍

1. 什么是 Ajax?

2. 预备知识

基本的 HTML、CSS、JS知识储备。

二. Ajax 概念介绍

1. 同步和异步

1)概念

在 Ajax 出现之前,网页的数据请求是同步进行的,以表单为例,输入完所有的信息,才会向服务器请求数据,然后服务器对信息进行处理并刷新整个页面,进行信息反馈 Ajax 实现了异步数据传输,当我表单内的一个信息填写完成后,客户端就会向服务器提交信息,进行信息处理并返回处理结果,在此时我们可以继续进行其他信息的填写

2)异步的产生

异步的产生在技术层面是由于新对象的出现XMLHttpRequest。这个对象的出现可以在不加载整个页面的情况下,使后台和服务器进行数据的交换。

3)异步的使用

2. XMLHttpRequest ( XHR ) 对象创建

实例化一个 XHR 对象

  var request = new XMLHttpRequest();

现在的浏览器基本都支持 XHR 对象,但是 ie6以下不支持,所以我们可以输入如下代码进行兼容

  var request;
  if(window.XMLHttpRequest){
    request = new XMLHttpRequest();
  } else {
    request = new ActiveXObject("Microsoft.XMLHTTP"); // IE6,IE5
  }

当我们 new 了一个 XHR 对象,我们就可以进行数据请求的操作了。

3. HTTP 请求

1)HTTP 概念

http 是计算机通过网络进行通信的规则,使得浏览器可以从服务器请求信息和服务。
http 是一种无状态的协议,即不建立持久的连接。客户端向服务器提出请求,服务器作出相应,然后链接就被关闭了,这个处理过程是没有记忆的。

这是一个完整的 HTTP 请求样例 GET 是请求方法 login.php 是请求地址 中间部分是请求头 最后一行是请求体

2)GET 与 POST

3)HTTP 响应

一个 HTTP 响应一般由三个部分组成:

  1. 一个数字和文字组成的状态码
  2. 响应头,响应头也和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等
  3. 响应体,也就是响应正文


    HTTP 响应样例

4)HTTP 响应的状态码

HTTP 的状态码由三位数字构成,其中首位数字定义了状态码的类型:

HTTP 响应状态码

4. XMLHttpRequest 发送请求

之前我们知道了如何创建一个 XHR 对象,现在我们来看看如何用这个 XHR 对象发送请求。
XHR 发送请求有两个常用的方法需要介绍:

5. XMLHttpRequest 取得响应

以下是获取服务器响应的一些方式语句:

以上的方式只是获取响应值,下面的属性是在响应成功的时候得到通知:

监听方式:

  var request = new XMLHttpRequest();
  request.open("GET", "get.php", true);
  request.send();
  request.onreadystatechange = function (){
      if(request.readyState === 4 && request.status   === 200){
          // 做一些事情
      }
  }

以上也是一个典型的 XHR 建立 Ajax 对象的基本步骤。

三. Ajax 的简单例子(Ajax + PHP)

在这里由于配置环境等的不同,本文中并未直接采用视频中的例子进行说明,而是使用了自己的例子进行参考:

使用 Ajax 实现简单的登录效果的原理

四. JSON 格式

1. JSON 基本概念

1)JSON 基本概念

2)JSON 与 XML 比较

3)JSON 语法规则

      "name":"郭静"
{
    "staff":[
        {"name":"洪七", "age":70},
        {"name":"郭静", "age":35},
        {"name":"黄蓉", "age":30}
    ]
}

2. JSON 解析、格式化和校验工具

1)JSON 解析

控制台中两种方式解析 JSON 的演示

注:在控制台,eval 不会判断字符串是否合法,而且各种方法会直接执行,这是非常危险,而且应该避免发生的。所以尽量不使用 eval 方法。在实际使用中,尽可能地使用 JSON.parse()。

2)在线 JSON 校验工具

JSONLint

输入 JSON 代码即可返回代码中的错误。
具体使用略,详见视频。

五. jQuery 中的 AJAX

用 jQuery 实现 Ajax

通常我们不会直接用 JS 实现 Ajax 效果,而是采用第三方库,比如 jQuery。JQuery 已经封装了 Ajax 的方法。

jQuery.ajax([settings])
这是一个 jQuery 创建的 Ajax 对象在留言板示例中的使用 由于本文整理时并未引用视频中的示例 所以将会在之后的文章中单做讲解
上一篇 下一篇

猜你喜欢

热点阅读