1. 什么是Ajax

首先来看一下什么是Ajax,英语全称Asynchronous JavaScript And XML,翻译成中文就是异步的JavaScript和XML。也被称为异步无刷新技术

先来解释什么是同步?什么是异步?

所谓同步,就是发出HTTP请求以后,客户端只能等待HTTP响应回来才能够干其他的事儿,只要HTTP响应没有回来,那就什么都做不了

所谓异步,发出HTTP请求以后,客户端不用非要等到HTTP响应回来,就可以做其他的事儿。

Ajax并不是一门新的语言或者说是新的技术,而是之前已有的技术:JS,XML,DOM,CSS等多种技术的结合。

Ajax是一个与服务器端无关的技术

哪些地方使用了Ajax?

百度地图:

表单验证

智能提示

  1. Ajax工作原理

传统Web应用的工作:当用户每触发一个HTTP请求,即使只有少量的数据发生变化,其他部分的内容都没有变化,一旦提交,页面还是会重新刷新

处理—等待—处理—等待

Ajax技术实现的是按需获取数据

传统Web应用和Ajax工作原理示意图:

传统Web应用                               Ajax工作原理

  1. 编写Ajax步骤

①  创建Ajax对象

有两种不同的方式:IE的方式和主流浏览器的方式

Ajax中最核心的对象就是XMLHttpRequest对象,最早是由微软公司于1999年在IE5里面内嵌的一种技术。现在市面上几乎所有浏览器都内置了这个对象。

主流浏览器创建XMLHttpRequest对象的方式

IE浏览器创建XMLHttpRequest对象的方式

通过window.ActiveXObject可以判断用户使用的浏览器是IE还是主流浏览器,根据用户使用的浏览器创建不同类型的XMLHttpRequest对象

② 与服务器建立连接并且向服务器发送请求

什么时候建立服务器连接并向服务器发送请求,这里我们需要通过JS事件来进行判断

建立与服务器的连接,通过XMLHttpRequest对象的open()

该函数接收3个参数:1. 连接服务器的方式  2. 连接地址  3. 同步还是异步

GET示例:如下

这里是采用get的方式连接服务器,服务器的地址为test.php 向服务器传输的数据为username=xiejie  由于向服务区传输的数据通过get的方式是拼接在url后面的,所以send()方法里面写入一个null

POST示例如下:

③ 设置回调函数是为了处理从服务器取回来的数据

在open()方法和send()方法之间需要添加状态的监听

通过XMLHttpRequest对象的onreadystatechange属性就可以监听Ajax引擎的工作状态

Ajax的状态如下:

0-(未初始化):还没有调用send()方法

1-(载入):已经调用了send()方法

2-(载入完成):send()方法执行完成

3-(交互):正在解析响应内容

4-(完成):响应内容已经解析完成,可以在客户端使用了

通过XMLHttpRequest对象的readyState属性可以获取Ajax运行的状态值

通过XMLHttpRequest对象的status属性可以获取到返回的HTTP响应的状态码

通过XMLHttpRequest对象的responseText属性可以获取从服务器返回的值

服务器端:服务器接收到客户端提交过来的用户名,然后进行判断,最后返回文本数据

详细代码请参见【表单验证Demo】

Ajax基础介绍的更多相关文章

  1. AJAX基础_AJAX获取PHP数据

    前言 本篇AJAX基础教程,只讲干货,拒绝废话. 全文通过两个实例来讲解AJAX的基本用法,第1个实例是使用AJAX技术从服务器获取纯文本(HTML)数据, 第2个实例是获取从服务器PHP文件的数据. ...

  2. 史上最全的Ajax基础详解

    同步请求和异步请求 先解释一下同步和异步的概念: 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯 ...

  3. 【Java EE 学习 31】【JavaScript基础增强】【Ajax基础】【Json基础】

    一.JavaScript基础增强 1.弹窗 (1)使用window对象的showModelDialog方法和showModelessDialog方法分别可以弹出模式窗口和非模式窗口,但是只能在IE中使 ...

  4. Ajax基础知识《一》

    对于网站开发人员,一定不会陌生的Ajax技术,本篇就让我们认识一下它,或许在日后的开发过程中我们就可以使用到.Ajax在那方面使用的比较多呢?答案:表单注册,传统的表单注册,有时需要填写大量的信息,当 ...

  5. Ajax基础2

    什么是服务器 网页浏览过程的分析 如何配置自己的服务器程序(AMP) 什么是Ajax 无刷新数据读取 异步,同步 Ajax基础(2) 使用Ajax 基础请求显示txt的文件 字符集编码 缓存,阻止缓存 ...

  6. ajax基础语法、ajax做登录、ajax做用户名验证是否可用、ajax做关键字查询动态显示、ajax做用表格显示数据并增加操作列

    AJAX: AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.   ...

  7. Web3D编程入门总结——WebGL与Three.js基础介绍

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  8. C++ 迭代器 基础介绍

    C++ 迭代器 基础介绍 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定 ...

  9. Ajax基础--JavaScript实现

    ajax原理 1.ajax 即“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),也就是无刷新数据读取. 通俗地讲就是:AJAX 通过在后台与 ...

随机推荐

  1. hdu-5003 Osu!(水题)

    题目链接: Osu! time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) Prob ...

  2. Python:元组

    元组:只读,不能修改,使用小括号 创建元组: tup1 = ('physics', 'chemistry', 1997, 2000) tup2 = (1, 2, 3, 4, 5 ) tup3 = &q ...

  3. BZOJ4936:match (不错的分治)

    给你一个由小写字母组成的字符串s,要你构造一个字典序最小的(认为左括号的字典序比右括号小)合法的括号 序列与这个字符串匹配,字符串和括号序列匹配定义为:首先长度必须相等,其次对于一对匹配的左括号和右括 ...

  4. 「CQOI2007」「BZOJ1260」涂色paint (区间dp

    1260: [CQOI2007]涂色paint Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 2057  Solved: 1267[Submit][St ...

  5. 二、mysql安装详解

    step1:打开下载的mysql安装文件(mysql-5.5.36-win32.msi),双击运行,如下图: step2:点击“Next”按钮继续,如下图: step3:点击“勾选”,点击“Next” ...

  6. Ladies' Shop

    题意: 有 $n$ 个包,设计最少的物品体积(可重集),使得 1. 对于任意一个总体积不超过给定 $m$ 的物体集合有其体积和 恰好等于一个包的容量. 2.对于每一个包,存在一个物品集合能恰好装满它. ...

  7. jQuery.validator.addMethod方法的使用

    该方法有三个api接口参数,name,method,messages addMethod(name,method,message)方法 参数 name 是添加的方法的名字. 参数 method 是一个 ...

  8. 安装java之后,找不到tools.jar 和dt.jar

    可能很多初学者和我一样,在初次接触java开发的过程中,急于看到最终的结果,匆匆在网上下载了jdk之后,点击安装,结果等安装完,开始配置classpath时,发现jdk/lib下面根本就没有 tool ...

  9. 电商:html样式集合

    1. <span class="big"  style="text-decoration:line-through;">原价:¥{zlcms:art ...

  10. 接口开发之PHP创建XML文件

    用PHP的DOM控件来创建输出 输出的格式为XML 接口开发的相关文件及说明 <?php header("Content-type: text/xml");//头文件非常重要 ...