AJAX笔记整理
AJAX: Asynchronous JavaScript and XML,异步的Javascirpt和Xml。
Asynchronous:异步
与之对应的是 synchronous:同步,我们要知道这里的同步和异步指的是什么?
同步交互:指一个时间段内只能有一个进程在执行,当发送一个请求时,必须等待结果的返回,才能发送下一请求。
异步交互:指一个时间段内可以有多个进程在执行,即不需要等待返回,随时可以发送下一个请求。
JavaScript:整个技术的核心。
Xml:主要保存和传输数据
AJAX到底是什么?
AJAX 是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换。
AJAX最大的用处是什么?
AJXA可以使网页异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的网页不使用AJAX,如果需要更新,需要重载整个页面。
这就是AJAX最大的好处,用户体验好,无刷新。
XMLHttpRequest对象
XMLHttpRequest对象是AJAX的基础,所有现代浏览器均支持 XMLHttpRequest 对象。
XMLHttpRequest 用于在后台与服务器交换数据,使得在不重新加载整个网页的情况下,更新网页。
1.创建XMLHttpRequest对象的语法
variable=new XMLHttpRequest();
为了适应现代的所用浏览器,下面是通用的创建格式
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
2.向服务器发送请求
我们使用的是XMLHttpRequest对象的open()和send()方法
xmlhttp.open("GET","test.txt",true);//open(method(请求的类型),url(文件在服务器的位置),async(false:同步 true:异步))
xmlhttp.send();//将请求发送至服务器
3.处理返回响应
需获得来自服务器的响应,我们使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
responseText属性获取的是服务器返回的字符串形式的响应数据。
responseXML属性获取的是服务器返回的响应是XML。
4. onreadystatechange 事件
当请求被发送到服务器时,需要执行一些基于响应的任务。
每当 readyState 改变时,就会触发 onreadystatechange 事件。
readyState 属性存有 XMLHttpRequest 的状态信息。
XMLHttpRequest有下面几个常用的属性:
| 属性 | 描述 |
|---|---|
| onreadystatechange | 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。 |
| readyState |
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
|
| status | 200: "OK" 404: 未找到页面 |
当 readyState 等于 4 且状态为 200 时,表示响应已就绪,我们就可以执行我们要做的操作:
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("test").innerHTML=xmlhttp.responseText;
}
}
总结:
①创建ajax对象 var xhr=new XMLHttpRequest()
②建立一个http连接 xhr.open('get',url,true);
③发送一个http请求 xhr.send(null);
④给ajax状态绑定一个回调函数 xhr.onreadystatechange=function(){};
⑤判断ajax的状态是否等于4和xhr.readyState==4 ,就做相应的业务逻辑接收字符串(xhr.responseText)或者XML(xhr.responseXML)。
AJAX笔记整理的更多相关文章
- java笔记整理
Java 笔记整理 包含内容 Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...
- HTTP协议笔记整理
有人说过,精通HTTP协议能赢过95%的前端工程师,所以我毅然的踏上这条路,哈哈哈,接下来把自己的学习笔记整理出来. 我会从比较底层的模型开始: 1.网络的五层模型 2.TCP/IP协议 3.HTTP ...
- 运维开发笔记整理-Request对象与Response对象
运维开发笔记整理-Request对象与HttpResponse对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.request对象 1>.什么是request 首先,我 ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- 从0开始学Swift笔记整理(五)
这是跟在上一篇博文后续内容: --Core Foundation框架 Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Sw ...
- Deep Learning(深度学习)学习笔记整理系列之(五)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- 学习ReactNative笔记整理一___JavaScript基础
学习ReactNative笔记整理一___JavaScript基础 ★★★笔记时间- 2017-1-9 ★★★ 前言: 现在跨平台是一个趋势,这样可以减少开发和维护的成本.第一次看是看的ReactNa ...
- Deep Learning(深度学习)学习笔记整理系列之(八)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(七)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
随机推荐
- python中class的序列化和反序列化
对于类的序列化:将类的成员变量名和数据作为一对键值对存储在物理内存中,例如 class A(object): def __init__(self): self.a = o self.b = 1 sel ...
- python使用细节
python的函数位置参数在调用时可以直接传参,也可以a=5,b=7的形式传参,原以为kw参数才可以. >>> def f(a,b): print a+b >>> ...
- ecs主机被破解后下载的执行文件的脚本
#!/bin/bashchmod 777 xiaochattr 777 haha/etc/init.d/iptables stop;service iptables stop;SuSEfirewall ...
- Mac 笔记本 开发日记
1.录屏,截图 Mac 自带录屏功能 command +control +o 2.复制当前应用,在启一个当前app窗口 command+n 3.快速回到桌面 command +f3 4.选中文件,复制 ...
- 2.Yum仓库优化
1.[初始yum源备份]-[yum更换为国内源]-[添加epel扩展源] #!/bin/bash mkdir /etc/yum.repos.d/backup/ mv /etc/yum.repos.d/ ...
- SSM商城项目(八)
1. 学习计划 1.solr集群搭建 2.使用solrj管理solr集群 3.把搜索功能切换到集群版 4.添加商品同步到索引库 2. 什么是SolrCloud SolrCloud(solr 云 ...
- vi 操作
vi 3种模式:1命令行模式,2插入模式,3末行模式 Vim启动后直接进入的是命令行模式,命令行模式顾名思义就是可以输入各种命令的意思, 1. 命令行下按i键进入“插入模式”,命令行下按:键进入“末行 ...
- java使用poi生成导出Excel(新)
导出样式: java代码: import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStre ...
- 定义一个包含标签inclusion_tag, 调用模板时报错.. 应该是路径 不对吧...我的templates 是放在app 目录下的.<待处理>
# 自定义模板标签. 标签的作用,在模板中 实现逻辑,如if ,for 等 from django.template import Library from datetime import datet ...
- 20175314 《Java程序设计》迭代和JDB
20175314 <Java程序设计>迭代和JDB 要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令 ...