1、对Ajax的初步认识

  1.1、 Ajax 是一种网页开发技术,(Asynchronous Javascript + XML)异步 JavaScript 和 XML;

  1.2、Ajax 是异步交互,局部刷新;

  1.3、Ajax 能减少服务器压力;

  1.4、Ajax 能提高用户体验;

2、Ajax交互和传统交互的比较

  传统交互:网页整体刷新,服务器压力大,用户体验不好;

  Ajax 交互:局部刷新,服务器压力小,用户体验好;

3、Ajax核心知识

  3.1 XMLHttpRequest对象的创建

  所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行局部更新

  3.2、XMLHttpRequest对象请求后台

open(method,url,async):规定请求的类型、URL 以及是否异步处理请求。

  •   method:请求的类型;GET 或 POST
  •   url:文件在服务器上的位置
  •   async:true(异步)或 false(同步)

  send(string):将请求发送到服务器。string:仅用于 POST 请求。

  GET 还是 POST?
  与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
  然而,在以下情况中,请使用 POST 请求:

  •   无法使用缓存文件(更新服务器上的文件或数据库)
  •   向服务器发送大量数据(POST 没有数据量限制)
  •   发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

  setRequestHeader(header,value):向请求添加 HTTP 头。

  •   header: 规定头的名称
  •   value: 规定头的值

  异步 - True 或 False?
  AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。

  为 True 的话,表示的是异步,异步表示程序请求服务器的同时,程序可以继续执行;能提高系统的运行效率;

  为 False 的话,表示同步,JavaScript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会挂起或停止。我们一般都是用 True;

  3.3、XMLHttpRequest对象响应服务器

  onreadystatechange 事件:当请求被发送到服务器时,我们需要执行一些基于响应的任务。
  每当 readyState 改变时,就会触发 onreadystatechange 事件。readyState 属性存有 XMLHttpRequest 的状态信息。下面是 XMLHttpRequest 对象的三个重要的属性:
onreadystatechange存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

  • 0: 请求未初始化
  • 1: 服务器连接已建立
  • 2: 请求已接收
  • 3: 请求处理中
  • 4: 请求已完成,且响应已就绪

status

  • 200: "OK"
  • 404: 未找到页面

在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。
如需获得来自服务器的响应,需要使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
属性 描述:

  • responseText 获得字符串形式的响应数据。
  • responseXML 获得 XML 形式的响应数据。

4、自己对Ajax局部数据交互流程的总结:

  相比传统的数据交互,Ajax的亮点后台与服务器仅仅进行少量数据交换。换言之就是不重新加载整个网页的情况下,对网页的某部分进行更新。我们要实现这个功能的话,首先需要一个XMLHttpRequest的对象,这个对象是目前主流浏览器都会内置的一个对象,这个对象就是为了完成局部数据交换而存在的一个对象。为了兼容不同版本的浏览器,我们创建这个对象的时候,需要考虑到运行此程序的浏览器时候有这个对象。然后要把请求发送到后台(XMLHttpRequest对象请求后台)、后台收到请求之后进行处理、经过处理的结果在返回到前台进行展示(XMLHttpRequest对象响应服务器),大致就是一个这样的过程,这期间一直持续维护的一个对象就是XMLHttpRequest对象,这样就实现了一个完整的局部动态网页更新的功能。

对学习Ajax的知识总结的更多相关文章

  1. Ajax基础知识《一》

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

  2. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  3. (1)写给Web初学者的教案-----学习Web的知识架构

    1:学习Web的知识架构 前文中我们简单的介绍了一些关于Web的基本知识,这里任老师再次强调一下凡是用浏览器打开的网站我们就称之为Web应用程序(B/S结构).除此之外其它需要下载安装的软件或是手机  ...

  4. AJAX重点知识的心得体会

    下面就为大家带来一篇 AJAX重点知识的心得体会.学习还是有点帮助的,给大家做个参考吧. AJAX是什么? 是Asynchronous Javascript And XML的首字母的缩写, 它不是一门 ...

  5. Ant学习-001-ant 基础知识及windows环境配置

    一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...

  6. 学无止境,学习AJAX,跨域(三)

    学习AJAX其实有个很重要的应用,就是为了执行另外几个站点的ASP,返回结果. 真正用起来,发现2个问题,>_> 不许笑,一向做DELPHI,接触ASP不多的我,的确问题大堆. 第一个问题 ...

  7. 学习javascript基础知识系列第二节 - this用法

    通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...

  8. 学习javascript基础知识系列第三节 - ()()用法

    总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...

  9. Ajax基础知识(二)

    接上一篇  Ajax基础知识(一) 在上一篇博客里,抛弃了VS中新建aspx页面,拖个button写上C#代码的方式.使用ajax的方式,异步向服务器请求数据.我们让服务器只简单的返回一个" ...

随机推荐

  1. unable to access android sdk add-on list(转)

    造成这个问题的原因可能有多种,下面两种方法,我亲自测试后可用,如果都不行,请在评论里告诉我,我会尽快帮你分析解决.左侧的文章分类中,Android Studio编译构建错误记录了我开发中遇到的所有编译 ...

  2. 迅速上手:使用taro构建微信小程序基础教程

    前言 由于微信小程序在开发上不能安装npm依赖,和开发流程上也饱受诟病:Taro 是由京东·凹凸实验室(aotu.io)倾力打造的 多端开发解决方案,它的api基于react,在本篇文章中主要介绍了使 ...

  3. Caused by: java.lang.ClassNotFoundException: backtype.storm.topology.IRichSpout

    1:初次运行Strom程序出现如下所示的错误,贴一下,方便脑补,也希望帮助到看到的小伙伴: 错误如下所示,主要问题是刚开始使用maven获取jar包的时候需要写<scope>provide ...

  4. 计算1至n中数字X出现的次数【math】

    转自: nailperry 一.1的数目 编程之美上给出的规律: 1. 如果第i位(自右至左,从1开始标号)上的数字为0,则第i位可能出现1的次数由更高位决定(若没有高位,视高位为0),等于更高位数字 ...

  5. net core体系-web应用程序-4net core2.0大白话带你入门-4asp.net core配置项目访问地址

    asp.net core配置访问地址  .net core web程序,默认使用kestrel作为web服务器. 配置Kestrel Urls有四种方式,我这里只介绍一种.其它方式可自行百度. 在Pr ...

  6. LOJ#6433. 「PKUSC2018」最大前缀和 状压dp

    原文链接https://www.cnblogs.com/zhouzhendong/p/LOJ6433.html 题解 枚举一个集合 S ,表示最大前缀和中包含的元素集为 S ,然后求出有多少个排列是这 ...

  7. BZOJ3110 [Zjoi2013]K大数查询 树套树 线段树 整体二分 树状数组

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3110 题意概括 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位 ...

  8. 记录一次惊心动魄的sql去重

    )) )) url 为判重依据,保留最大id其他的数据状态改为删除状态. concat()函数,为字符串拼接函数 从外到内分析sql 第一层四个条件界定,第一个是source渠道,第二个是未删除状态, ...

  9. spring cloud (三、服务提供者demo_provider)

    spring cloud (一.服务注册demo_eureka) spring cloud (二.服务注册安全demo_eureka) 创建一个服务提供者注册到服务注册中心,跟前一个案例一样创建一个s ...

  10. 框架MyBatis

    ByBatis MyBatis是Apache的一个开源项目iBatis,iBatis3.x 正式更名为MyBatis ,代码于2013年11月迁移到Github.它是一个基于Java的持久层框架(连数 ...