基本过程

Ajax 提供异步通信和同步通信

核心为XMLHTTPRrequest(IE6不支持)

使用过程:

1.创建Ajax调用

2.向服务器发送请求open(参数1,参数2,参数3,[参数4],[参数5])

  参数1:请求方式,有GET和POST两种方法,GET性能好,但是会暴露数据,且数据有上限;POST不会暴露数据,且没有传输上限。

  参数2:请求URL地址,注意路径

  参数3:是否异步,true为异步

  参数4和5:用户名密码

3.通过open方法将调用所需数据准备好,然后通过send方法发送请求。

4.接收服务器传回数据

readyState属性反应调用状态:

0——open方法尚未被调用(uninitialized)

1——open方法已被调用(loading)

2——send方法已被调用(loaded)

3——开始回传服务器的应答(interacting)

4——请求已完成(complete)

当readyState发生变化时会触发readystatechange事件,通过事件来判断状态

服务器状态:

200——服务器正常

将Ajax调用封装为函数

 1 function getHTTPObject(){
 2         var xhr;
 3         if (window.XMLHttpRequest) {//IE7及以上及其他浏览器
 4             xhr = new XMLHttpRequest();
 5         } else if(window.ActiveXObject){//IE6
 6             xhr = new ActiveXObject("Msxml2.XMLHTTP");
 7         }
 8         return xhr;
 9 }
10
11 function ajaxCall(dataUrl,callback){//请求地址,回调函数
12     var request = getHTTPObject();
13     request.onreadystatechange = function(){
14         if(request.readyState === 4 && request.status === 200){//ajax请求完成且服务器状态正常
15             console.log(request.responseText);
16             var contacts = JSON.parse(request.responseText);//将字符串转化为JSON
17             if(typeof callback === "function"){
18                 callback(contacts);//利用回调函数处理请求结果
19             }
20         }
21     }
22     request.open("GET",dataUrl,true);
23     request.send(null);
24 }

AJAX数据格式

XML JSON HTML
可扩展、符合DOM标准 易读、迅速灵活与平台无关、跨站容易 速度快、不需要解析
不能跨域名Ajax调用 语法对符号要求严格,容易被远程注入恶意脚本 无法精细控制

AJAX的易访问性

易于访问的富因特网应用程序Accessible Rich Internet Applications=ARIA

ARIA活动区域:

1.aria-atomic:当页面发生改变,屏幕阅读器根据该属性决定是否展示某个活动区域内的内容。

2.aria-busy:当活动区域内容正在更新,该值返回true;

3.aria-live:标识文档活动区域中内容变更的重要程度,off、polite、asserive

4.aria-relevant:标志单个活动区域内发生了何种变化,additions、removals、text、all

<div id="output" aria-atomic="true" aria-live="polite" aria-relevant="additions"></div>

改善用户体验


为用户的每一个操作提供反馈,告诉他们你正在用AJAX调用数据,于是修改前面的代码,橙色部分

 1 function getHTTPObject(){
 2         var xhr;
 3         if (window.XMLHttpRequest) {//IE7及以上及其他浏览器
 4             xhr = new XMLHttpRequest();
 5         } else if(window.ActiveXObject){//IE6
 6             xhr = new ActiveXObject("Msxml2.XMLHTTP");
 7         }
 8         return xhr;
 9 }
10 function ajaxCall(dataUrl,outputElement,callback){//请求地址,回调函数
11     var request = getHTTPObject();
12     outputElement.innerHTML = "Loading...";
13     request.onreadystatechange = function(){
14         if(request.readyState === 4 && request.status === 200){//ajax请求完成且服务器状态正常
15             console.log(request.responseText);
16             var contacts = JSON.parse(request.responseText);//将字符串转化为JSON
17             if(typeof callback === "function"){
18                 callback(contacts);//利用回调函数处理请求结果
19             }
20         }
21     }
22     request.open("GET",dataUrl,true);
23     request.send(null);
24 }

后退返回

History API

转载于:https://www.cnblogs.com/jellybaobao/p/3956264.html

JavaScript复习笔记(1)——AJAX相关推荐

  1. JavaScript复习笔记

    js复习笔记 js复习笔记,内容来源自廖雪峰JavaScript教程,w3school,菜鸟教程 一.快速入门 1.基本语法 1)js是一种直译式脚本语言 2)js结束语句后的;可以省略不写,原因是执 ...

  2. HTML+CSS+JavaScript复习笔记持更(一)——标签篇

    前言 博主现在还是在校生,目前大三,突然想起HTML的很多基础都忘记的差不多了,于是买了几本基础书,创建这篇博文用于记录复习笔记,也希望我自己在整理的时候,能帮助大家加深一些基础知识的印象,本篇博文将 ...

  3. JavaScript学习笔记:AJAX基础

    文章目录 一.准备工作 任务1.安装`phpstudy_pro`并启动`Apache`服务 任务2.下载HBuilder X,创建HBuilder项目 任务3.输入城市代码,返回城市天气预报信息 1. ...

  4. Javascript学习笔记12——Ajax入门

    Ajax:Asynchronous Javascript And XML.写个简单的例子: <body> <form id="form1" runat=" ...

  5. HTML+CSS+JavaScript复习笔记持更(六)——CSS3常用属性之文本

    文本相关 文本相关,包含了文字样式和文本换行等格式 文字 文字是一个网页最基础的部分,文字主要有以下几种属性: 字体 文字大小 文字颜色 水平对齐方式 段首缩进方式 语法格式: <!DOCTYP ...

  6. JavaScript复习笔记(3)——数据类型(null、undefined、NaN)与深度克隆

    JavaScript中的数据类型:Number.Boolean.String.Object.Function 但是此外还有一些容易混淆的类型如null.undefined.NaN.Array的概念 f ...

  7. HTML+CSS+JavaScript复习笔记持更(十)——CSS3常用属性之定位

    定位 定位主要是用来设定元素在页面上的位置的,其代码为:position 定位有三种定位方式: static(无特殊定位,按照dom排序) absolute(绝对定位,往前面找最近的,有定位属性的元素 ...

  8. HTML+CSS+JavaScript复习笔记持更(九)——CSS3常用属性之盒模型

    盒模型 盒模型是CSS中最最重要的概念之一了,这个概念比较抽象,它规定了元素框处理元素内容.外边距.内边距.边框的方式. 内.外边距的属性 内边距:padding 外边距:margin 边框:bord ...

  9. HTML+CSS+JavaScript复习笔记持更(八)——CSS3常用属性之列表

    列表属性 之前已经介绍过了列表标签.主要有有序列表和无序列表,为了更好地控制这两种列表,CSS还提供了这两种列表的样式设置. list-style(简写属性,把所有列表的属性设置写到一个声明中) li ...

最新文章

  1. Customize a Scheduling Policy
  2. IDEA:Debug使用详解(含2018版特性)
  3. HtmlParser基础教程
  4. php bloginfo templatedirectory,WordPress函数:bloginfo(显示博客信息)
  5. 22课时、19大主题,CS 231n进阶版课程视频来了
  6. php获取脚本运行时间,PHP获取脚本运行时间
  7. vue 高德地图使用热力图
  8. CCbot是什么梗?
  9. Intel SGX背景、其他可信计算技术和TEE技术(翻译自Intel SGX Explained)
  10. spring data JPA的使用
  11. JavaScript实现节点的增加修改删除查找
  12. android 来电解锁,带你解锁手机隐藏黑科技,极少人知道!
  13. 以太坊开发入门-第一个程序
  14. 【csdn涨粉秘籍】亲身体验从一年才涨80粉到20天涨粉800多,规则内设置,一个步骤助你快速涨粉
  15. Spring JDBC的详解
  16. python遍历替换字典的key_Python遍历字典去key和value需要注意的点→enumerate和items()...
  17. char *字符串和char[]的区别
  18. OneNote的登录问题
  19. 调度:确定性模型中的符号
  20. 三相llc 华为_剧情大反转!华为要求美企支付10亿多美元专利费

热门文章

  1. 如何对自己做好正确的人生规划
  2. mac电脑安装python_【mac电脑怎么安装python】mac版python安装教程
  3. Linux用户和HDFS和Hive权限关系
  4. Leetcode 698. 划分为k个相等的子集 解题思路及C++实现
  5. 第三方模块——nodemon是一个命令行工具,用以辅助项目开发、nrm ( npm registry manager ):npm下载地址切换工具
  6. 在方法的形参位置使用@Qualifier注解||@Autowired 与@Resource的区别
  7. EasyStruct.js轻松创建可填入式html模板结构
  8. Python 库引用提示:name ‘json‘ is not defined. 问题解决办法
  9. Markdown设置字体大小、颜色...,CSDN博客编写设置字体大小、颜色、粗细。字体,文字背景设置。
  10. Python知识点笔记-面向对象进阶篇