Ajax的全称是Asynchronous JavaScript and XML,是JS的特有功能,它作用是异步JS数据交互,即在不进行页面刷新的情况下进行部分数据的获取,性能较高。值得注意的是,仅有Ajax是不能够实现跨域的操作,如果和JSONP或者WebSocket配合可以实现。

  Ajax工作方式:

  

1.Ajax成员属性

  (1)responseText  后台返回数据存放的位置,返回值为字符串型

  (2)readyState   系统记录执行的步骤,共有5个值:0 尚未初始化

                            1 服务连接已建立(open)

                            2 请求已接收(send)

                            3 请求处理中

                            4 请求完成

  (3)responseXML    返回类型是XML类型,90%使用JSON方式

  (4)status      服务器返回的http响应值,常用如下:

    • 200 请求成功
    • 400 错误请求
    • 500 内部服务器错误

2.Ajax成员方法

  (1)open(method,url)  打开方式,method为两种:POST/GET

  (2)send(body)  确认发送请求

  (3)setRequestHeader(name,value)  设置请求头部

    使用方式:xhr.setRequestHeader(‘content-type’,’application/x-www-form-urlencoded’);

    form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data

3.Ajax监听事件

  onreadystatechange  状态变化事件控制对象,注意这个事件名全部是小写而非驼峰式命名,不过平时会有代码生成帮助我们

4.Ajax实现四步骤

  Ajax有一句常用的话,1个事件(onreadystatechange)、2个属性(responseText和readyState)、3个方法(open/send/setRequestHeader),在使用Ajax的时候经常会用到对应的内容。

  (1)var xhr = new XMLHttpRequest();//创建XMLHttpRequest对象

  (2)xhr.onreadystatechange=function(){

    console.log(xhr.readyState);

    console.log(xhr.responseText);

      }//xhr对象改变时自动调用此函数

  (3)xhr.open('GET','data.txt');//从data.txt中获取内容

  (4)xhr.send(null);//发送请求

5.Ajax请求

  (1)GET  此方式负责从后台获取数据,常用于验证用户

        GET的请求头部一般可以不写,默认为xhr.setRequestHeader(‘content-type’,’application/x-www-form-urlencoded’)

  (2)POST  此方式向后台发送表单数据,如密码

           POST的请求头部需要分情况而定,当表单method="post"时,如果没有type="file"控件,使用application/x-www-form-urlencoded,反之,使用multipart/form-data

6.代码样例

  在使用之前,需要先创建一个data.txt的文档。

 <script>
var box = document.querySelector(‘div’);
var btn = document.querySelector(‘button’);
btn.onclick = function(){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
box.innerHTML = xhr.responseText;
}
xhr.open(‘GET’,’data.txt’);
xhr.send(null);
}
</script>

Ajax技术剖析的更多相关文章

  1. WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘

    原文:WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘 通过<再谈IIS与ASP.NET管道>的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致 ...

  2. [ASP.NET MVC] ASP.NET Identity登入技术剖析

    [ASP.NET MVC] ASP.NET Identity登入技术剖析 前言 ASP.NET Identity是微软所贡献的开源项目,用来提供ASP.NET的验证.授权等等机制.本篇文章介绍ASP. ...

  3. 使用ajax技术实现txt弹出在页面上

    使用ajax技术实现txt弹出在页面上   使用ajax技术实现点击按钮,将TXT文本里的内容通过弹出框显示到页面上 /*事件会在页面加载完成后触发.*/ <script> window. ...

  4. 《所用到的AJAX技术基础》

    来自百度网页,w3cshool网页:AJAX = Asychronous JavaScript and XML,翻译成中文为:异步的JavaScript XML. 异步的意思就是不重新加载整个页面,后 ...

  5. Ajax技术

    1.ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth.google suggest以及gmail等对ajax技术的广泛应用,催生了ajax ...

  6. Ajax技术详解

    Ajax技术:Ajax描述了一种主要使用脚本(JS)操纵HTTP的web应用架构,它的主要特点是使用脚本操纵HTTP和web服务器进行数据交换,不会导致页面重载.Ajax的核心是JS的XMLHttpR ...

  7. Java之Ajax技术

    ajax(asynchronouse javascript and xml) 异步的javascript 和 xml(现在常把xml换成json): ajax是2005年提出的,在2006,2007年 ...

  8. 在 PHP 中结合 Ajax 技术进行图片上传

    前面几则日志中讲述了在 PHP 中上传文件,相信大家对 PHP 中如何进行文件上传已经初步掌握.本文来继续探讨在 PHP 中上传文件的技术,不同的是,本次上传将仅限于图片文件的上传,并且将采用 Aja ...

  9. ajax 技术和原理分析

    ajax所包含的技术 大家都知道ajax并非一种新的技术,而是几种原有技术的结合体.它由下列技术组合而成. 1.使用CSS和XHTML来表示. 2. 使用DOM模型来交互和动态显示. 3.使用XMLH ...

随机推荐

  1. java1.8新特性(四 创建 stream对象)

    java1.8 提供了 stream对象 可以用作 对 集合 数组的 一系列操作,都是基于lambda 表达式 ,所以得先熟悉lambda 表达式 集合创建stream对象 // 1.集合创建stre ...

  2. Java-Runoob-高级教程-实例-方法:09. Java 实例 – continue 关键字用法-un

    ylbtech-Java-Runoob-高级教程-实例-方法:09. Java 实例 – continue 关键字用法 1.返回顶部 1. Java 实例 - continue 关键字用法  Java ...

  3. centos7安装zabbix4.2

    附zabbixdocker镜像地址 https://hub.docker.com/u/zabbix/ zabbix官方文档 https://www.zabbix.com/cn/download 1.关 ...

  4. docker镜像文件的导入与导出(docker镜像迁移)

    1.查看镜像ID # docker images [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE myto ...

  5. Jmeter(二十二)Jmeter-Question之“不同线程组之间传递变量”

    Jmeter中增添原件是以线程组为‘基本单位’的,贴张图,显而易见: 测试计划节点下的内容 线程组节点下的内容 因此,变量只能在当前的线程组下进行传递.做个小Demo,立即试试: 测试结论:不同线程组 ...

  6. HBase常用操作命令

    HBase常用操作命令 1.进入HBase脚本客户端 #hbase shell #进入HBase脚本客户端 > whoami    #查看当前登录用户 > status           ...

  7. sas 获取字符串长度实例

    data _null_;a='Dogcat';b=' Dog cat';c=' Dog cat   ';Ra=length(a);Rb=length(b);Rc=length(c);put Ra=Rb ...

  8. mysql 5.7主从库复制设置

    先要修改配置文件,重启mysql服务 log-bin= mysql-binlog # 打开二进制日志 ,最好放在不同的硬盘上,减小 IO 消耗 expire_logs_day= # 设置二进制日志保存 ...

  9. 第8章 传输层(3)_TCP协议

    3. 传输控制协议(TCP) 3.1 TCP协议的主要特点 (1)TCP是面向连接的传输层协议.即使用TCP协议之前必须先建立TCP连接.在传送数据完毕之后,必须释放己经建立的TCP连接. (2)每一 ...

  10. Javascript-关于for in和forEach

    JS-for in:用来遍历对象 //遍历对象 for in var opts={name:'xiaofei',age:'28岁',job:'web前端工程师'} for (var k in opts ...