Ajax 的简介与使用
一、什么是Ajax
Ajax 的全称是 Asynchronous JavaScript and XML(即异步的 JavaScript 和 XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术
二、Ajax的优缺点
1、优点:
- 通过异步模式,提升了用户体验
- 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
- Ajax 引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载
2、缺点
- 不支持浏览器back按钮
- 安全问题,Ajax 暴露了与服务器交互的细节
- 对搜索引擎的支持比较弱
三、Ajax 的使用 -- 实现步骤
1、创建 XMLHttpRequest 对象,即创建一个异步调用对象
var XHR;
if(window.XMLHttpRequest){
XHR=new XMLHttpRequest(); //IE7+, Firefox, Chrome, Opera, Safari...
}else{
XHR=new ActiveXObject("Microsoft.XMLHTTP"); //IE6,IE5
2、创建一个新的 HTTP 请求,并指定该 HTTP 请求的方法、URL 及验证信息
XHR.open(method,url,async);
// method:请求类型,GET 或 POST---------可选
// url:文件在服务器上的位置--------------必要参数
// async:true(异步)或 false(同步)----可选
// 以上参数使用时均要加上“”
3、设置响应 HTTP 请求状态变化的函数
XHR.onreadystatechange = function () {
//异步调用成功
if (XHR.readyState === 4) {
if ((XHR.status >= 200 && XHR.status < 300) || XHR.status === 304) {
//获得服务器返回的数据
data = JSON.parse(XHR.responseText);
// 渲染数据
renderDataToDom();
} else {
console.log('unsuccess');
}
}
};
4、发送 HTTP 请求
request.send();
5、获取异步调用返回的数据 (JSON)
6、使用 JavaScript 和 DOM 实现局部刷新
四、Ajax中的一些处理总结
1、服务器响应处理
- responseText:获得字符串形式的响应数据
- responseXML:获得XML 形式的响应数据
2、同步处理
XHR.open("GET","demo_get.html",false);
XHR.send(); // 直接在 send() 后面处理返回来的数据
document.getElementById("target").innerHTML=XHR.responseText;
3、异步处理
异步处理相对比较麻烦,要在请求状态改变事件中处理
XHR.onreadystatechange=function(){ //接收到服务端响应时触发
if(XHR.readyState==4&&XHR.status==200){
document.getElementById("target").innerHTML=XHR.responseText;
}
}
下面是 XMLHttpRequest 对象的三个重要的属性
- onreadystatechange:存储函数,每当 readyState 属性改变时,就会调用该函数
- readyState:存有 XMLHttpRequest 的状态
0:请求未初始化
1:服务器连接已建立
2:请求已接收
3:请求处理中
4:请求已完成,且响应已就绪
- XHR.status:表示响应状态码。比较常见的有:
200:“OK”(当 readyState 等于 4 且状态为 200 时,表示响应已就绪)
304:该资源在上次请求之后没有任何修改(这通常用于浏览器的缓存机制,使用GET请求时尤其需要注意)
403:(禁止) 服务器拒绝请求
404:(未找到) 服务器找不到请求的网页
408:(请求超时) 服务器等候请求时发生超时
500:(服务器内部错误) 服务器遇到错误,无法完成请求
Ajax 的简介与使用的更多相关文章
- AJAX(一)AJAX的简介和基础
本节简介(异步链接服务器对象)XMLHTTPRequest以及AJAX的简介. AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML). AJ ...
- 掌握 Ajax,第 1 部分: Ajax 入门简介
转:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html 掌握 Ajax,第 1 部分: Ajax 入门简介 理解 Ajax 及其工作 ...
- jQuery的AJAX方法简介及与其他文件$符号冲突的解决办法
一.重要的jQuery AJAX方法简介 $.load(url) 从服务器载入数据 $.get(url,callback) 从服务器请求数据,并执行回调函数 $.post(url,data,callb ...
- ZK框架笔记1、ZK Ajax框架简介
简介 ZK是一个基于事件驱动和组件的框架,他为web应用提供了丰富的接口.zk包括一个基于Ajax的事件驱动引擎.一整套丰富的XML用户接口语言(XML User Interface Langu ...
- Ajax(简介、基础操作、计算器,登录验证)
Ajax简介 Ajax 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术. ...
- AJAX的简介
AJAX 指异步JavaScript及XML(Asynchronous JavaScript And XML(异步JavaScript和XML)),是指一种创建交互式网页应用的网页开发技术. 国内通常 ...
- AJAX技术简介
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: HTML / XHTML CSS JavaScript ...
- ajax入门简介
ajax的实现原理 ajax的定义是 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它可以在不刷新页面的情况下提交请求与服务器进行交互动作 ...
- Ajax 用法简介
使用Ajax实现页面的局部刷新 一.不依赖jquery时是这样的用法: var xhr=new XMLHttpRequest(); xhr.onreadystatechange=function(ev ...
随机推荐
- docker 下mysql 和postgresql 数据库的搭建以及数据文件的迁移和备份
service docker start - docker 启动 service docker stop - docker 关闭 1.docker 镜像创建—使用的默认镜像有数据卷 docker pu ...
- Qt563x86vs2015.编译错误(TypeError: Property 'asciify' of object Core::Internal::UtilsJsExtension(0x????????) is not a function)
1.在 编译或打开 pro时 有时会有这个错误 1.1.参考网址:Qt 编译错误 提示TypeError_ Property 'asciify' of object Core__Internal__U ...
- 软件素材---linux C语言:向文件末尾进行追加数据
void AppendDataToFile(char* filePath, char* msg) { // 以附加方式打开可读/写的文件, 如果没有此文件则会进行创建,然后以附加方式打开可读/写的文件 ...
- [转帖]04-创建kubeconfig认证文件
04-创建kubeconfig认证文件 https://www.cnblogs.com/guigujun/p/8366530.html 学习一下 貌似挺有用的. 本文档记录自己的学习历程! 创建 ku ...
- Elasticsearch-C#操作
初始化实例 nuget安装 1.单点连接 var node = new Uri("http://myserver:9200"); var settings = new Connec ...
- typedef用法和陷阱
一.typedef的用法 1.用typedef来声明新的类型名,来代替已有的类型名,也就是给类型起别名.比如 typedef float REAL; //用REAL来代表float类型 REAL a; ...
- QueryList::Query() The received content is empty!的经准灵活解决办法
QueryList::Query() The received content is empty! 最近因为项目问题出现The received content is empty!,我也有过在网上寻找 ...
- Python-02-基础知识
一.第一个Python程序 [第一步]新建一个hello.txt [第二步]将后缀名txt改为py [第三步]使用记事本编辑该文件 [第四步]在cmd中运行该文件 print("Hello ...
- PAT(B) 1083 是否存在相等的差(Java)统计
题目链接:1083 是否存在相等的差 (20 point(s)) 题目描述 给定 N 张卡片,正面分别写上 1.2.--.N,然后全部翻面,洗牌,在背面分别写上 1.2.--.N.将每张牌的正反两面数 ...
- C#用户控件实战01_CSS布局
很多应用系统的主页布局,一般采用如下案例所示布局较多,如下图的CSS布局框架,上.中.下,接下来我们演示,在C#中实现如下的业务架构布局. 代码范例: 在<body></body&g ...