AJAX --- 一种创建交互式网页应用的网页开发技术
AJAX
ajax核心技术就是 XMLHttpRequest 对象,简称XHR对象。这种客户端与服务器不刷新页面请求数据技术主要是利用XMLHttpRequest对象实现的,IE7 之前版本的浏览器是通过 ActiveXObject 对象实现的。
创建XHR实例
var xhr = (typeof XMLHttpRequest === "object") ? new XMLHttpRequest() : new ActiveXObject();
指定readyStatechange事件处理程序
- 请求/响应步骤: 启动请求 → 发送请求 → 接收部分数据 → 接收完整数据。
- 用户通过检测XHR对象的
.readyState属性来判断当前请求/响应阶段。
| XHR.readyState | 说明 |
|---|---|
| 0 | 未启动请求 |
| 1 | 启动请求 |
| 2 | 发送请求 |
| 3 | 接收部分数据 |
| 4 | 接收完整数据 |
每次 .readyState 属性值发生变化都会触发一个 readyStatechange 事件,用户可以监听这个事件来判断数据是否接收完毕。
xhr.onreadyStatechange = function() {
// xhr.readyState
};
启动请求
XHR对象的 .open( method, url, bool ) 方法是启动一个请求(注意:这里并没有发送请求!)。
| 参数 | 说明 |
|---|---|
| method | 请求方法(get、post...) |
| url | 请求url |
| bool | 是否异步发送 |
xhr.open( "get", "index.php", false );
发送请求
XHR对象的 .send( null ) 方法是正式发送请求。
xhr.send( null );
接收数据
当服务器响应请求后,响应的数据会自动填充 XHR 对象的属性中。
| 属性 | 说明 |
|---|---|
| responseText | 响应文本 |
| responseXML | 响应数据的XML DOM文档 |
| status | 响应HTTP状态 |
| statusText | 响应HTTP状态说明 |
// 建议判断status的状态码来确定下一步动作
xhr.onreadyStatechange = function() {
if( xhr.status >= 200 && xhr.status < 300 || xhr.status == 304 ) {
console.log( xhr.responseText );
}
}
取消XHR请求/响应
- 通过XHR对象的
.abort()方法来取消请求或者关闭响应。 - 终止请求之后,
XHR会停止触发事件,并且禁止访问与响应有关的属性。 - 终止请求之后,最好释放XHR引用,避免内存浪费。
xhr.abort();
xhr = null;
AJAX --- 一种创建交互式网页应用的网页开发技术的更多相关文章
- Java EE开发技术课程第五周(Applet程序组件与AJAX技术)
1.Applet程序组件 1.1.定义: Applet是采用Java编程语言编写的小应用程序,该程序可以包含在HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同.含有Apple ...
- 2019年6月14日 Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)
摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端传输数据编码格式contentType 批量插入数据和自定义分页器 一.MVC与MTV MVC(Model View Controller ...
- 网页中插入外部视频的几种方法(PC与手机网页通用)
网页中加入视频的几种方法(PC与手机网页通用) 方法一: <!doctype html> <html> <head> <meta charset=" ...
- jQuery中的Ajax几种请求方式
1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) : 请求的HTML页的URL地址. data (M ...
- ajax讲解:“创建用户”和“用户登录”练习
ajax可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面. 接下来,将以例子的形式进行讲解 例一:创建用户 ...
- 几种创建XMLHttpRequest对象的方法
XMLHttpRequest对象,也就是Ajax交互的核心对象. 这里列举三种创建Ajax对象的方法. 第一种: <!DOCTYPE html> <html> <head ...
- 503是一种HTTP状态码。英文名503 Service Unavailable与404(404 Not Found)是同属一种网页状态出错码。前者是服务器出错的一种返回状态,后者是网页程序没有相关的结果后返回的一种状态,需要优化网站的时候通常需要制作404出错页以便网站整体优化。
goldCat1 商城 消息 | 百度首页 新闻网页贴吧知道音乐图片视频地图百科文库 进入词条搜索词条帮助 近期有不法分子冒充官方收费编辑词条,百度百科严正声明:百科词条人人可编辑,词条创建和修改均免 ...
- egg.js 通过 form 和 ajax 两种方式上传文件并自定义目录和文件名
egg.js 通过 form 和 ajax 两种方式上传文件并自定义目录和文件名 评论:10 · 阅读:8437· 喜欢:0 一.需求 二.CSRF 校验 三.通过 form 表单上传文件 四.通过 ...
- 多对多三种创建方式、forms组件、cookies与session
多对多三种创建方式.forms组件.cookies与session 一.多对多三种创建方式 1.全自动 # 优势:不需要你手动创建第三张表 # 不足:由于第三张表不是你手动创建的,也就意味着第三张表字 ...
随机推荐
- luogu P1351 联合权值
题目描述 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离. ...
- 数据库系统学习(十)-嵌入式SQL语言之动态SQL
第十讲 嵌入式SQL语言之动态SQL 静态SQL 区别变量和属性:高级语言向嵌入式SQL传递变量的方法 动态SQL 动态构造SQL语句是应用程序员必须掌握的重要手段 SQL语句的动态构造示例 根据界面 ...
- 怎样高速地安装Ubuntu SDK
我在先前的文章"Ubuntu SDK 安装"中已经具体地介绍了怎样安装Ubuntu SDK.可是非常多的开发人员可能在最后安装SDK所须要的chroots时候会失败.这里面的原因是SDK在安装chro ...
- 怎样改动X-code中的字体大小、颜色
- HDU 4902 Nice boat 线段树+离线
据说暴力也过了.还傻逼地写了这么长. . . #include <stdio.h> #include <string.h> #include <math.h> #i ...
- hdu 4707 Pet(DFS && 邻接表)
Pet Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- 双向队列(STL做法)
双向队列 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描写叙述 想想双向链表--双向队列的定义差点儿相同,也就是说一个队列的队尾同一 ...
- Hadoop+HBase+ZooKeeper分布式集群环境搭建
一.环境说明 集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下: Hostname IP ...
- 给大二学生——能够再坚持一年的ACM
[来信] 我是大二学生,就读于一所非常普通的大学.学校ACM基本零起步,去年才開始搞,我大一大二花了非常多时间搞acm,如今不太想放弃.但学校基本没人愿意搞这个. 非常快就要大三了,我一直在纠结要不要 ...
- 持续集成-jenkins 环境搭建
转自:http://blog.jxdev.me/blog/2015/03/26/jian-xin-de-chi-xu-ji-cheng-zhi-lu-%5B%3F%5D-da-jian-jenkins ...