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.全自动 # 优势:不需要你手动创建第三张表 # 不足:由于第三张表不是你手动创建的,也就意味着第三张表字 ...
随机推荐
- raspi串口、python串口模块pyserial
一.安装 1.下载软件包pyserial-2.7.tar.gz 网址:https://pypi.python.org/pypi/pyserial 2.8uftp上传至/usr/local/src/ ...
- 用canal监控binlog并实现mysql定制同步数据的功能
业务背景 写任何工具都不能脱离实际业务的背景.开始这个项目的时候是因为现有的项目中数据分布太零碎,零零散散的分布在好几个数据库中,没有统一的数据库来收集这些数据.这种情况下想做一个大而全的会员中心系统 ...
- 从SOA到BFV【普元的一份广告文章】
人类对美好生活的追求是一切技术进步的原动力. 简便.快捷.联结……,这些移动互联的价值让它正成为最贴近消费者的力量.人和设备,设备和设备,人和服务,人和企业,企业和企业都发生了连接.诸如微信.携程.大 ...
- maven删除不必要的依赖;优化pom依赖研究
mvn dependency:copy-dependencies -DoutputDirectory=/home/admin/git/oceanus/test 会把所有依赖的插件版本都拷贝进去,而不是 ...
- BUPT复试专题—中序遍历序列(2013)
题目描述 给出一个序列,判断该序列是不是某二叉搜索树的中序遍历序列,如果是输出"Yes",否则输出"No".一颗带权二叉树是一颗二叉搜索树(二叉排序树),当且仅 ...
- 30 分钟编写一个 Flask 应用
Flask 是一种很赞的Python web框架.它极小,简单,最棒的是它很容易学. 今天我来带你搭建你的第一个Flask web应用!和官方教程 一样,你将搭建你自己的微博客系统:Flaskr.和官 ...
- Android新手入门2016(7)--布局
布局,这个在服务端变成是没有的,也是服务端的人学习client的一道坎吧. 曾经用cocos2d-x写小游戏的时候就是这个非常难懂,或者能用,可是理解不多的话,非常难写出好的布局,难以适合商业化的应用 ...
- docker save docker load
docker save && docker load docker save 镜像1 镜像2 | gzip > images.tar.gz 打包镜像为压缩文件 docker sa ...
- 李洪强iOS开发之 - enum与typedef enum的用法
李洪强iOS开发之 - enum与typedef enum的用法 01 - 定义枚举类型 上面我们就在ViewController.h定义了一个枚举类型,枚举类型的值默认是连续的自然数,例如例子中的T ...
- leetcode -day17 Path Sum I II & Flatten Binary Tree to Linked List & Minimum Depth of Binary Tree
1. Path Sum Given a binary tree and a sum, determine if the tree has a root-to-leaf path such tha ...