AJAX 初识
AJAX全称为 Asynchronous Javasript And XML,是在浏览器端进行网络编程(发送请求,接收响应)的技术方案。AJAX 也就是浏览器提供的一套API,可以供 Javascript 调用,从而通过代码来控制请求和响应,实现网络编程。
AJAX 使用基本模板
使用 AJAX 的过程相当于访问一个页面
- // 1.创建一个 XMLHttpRequest 的对象(相当于打开了一个浏览器)
// 兼容方案
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");- // 2,输入网址(get或post 根据需求设置,一般参数通过url传递则使用 get, 关于账户密码等敏感信息使用 post)
- xhr.open('get', 'time.php');
- // 3.敲回车,开始请求
- // 因为响应需要时间,所以无法通过返回值的方式返回响应
- // var response = xhr.send();
- // console.log(response);
- xhr.send();
- // 3.等待响应
- xhr.addEventListener('readystatechange', function () {
- if (this.readyState === 4) {
- // 获取响应体
- console.log(this.responseText);
- }
- });
详解等待状态(readyState)
readyState | 状态描述 | 含义 |
0 | unsent | 初始化,请求了一个代理对对象, |
1 | opened | open()方法已经调用,建立一个与服务端特定端口的连接 |
2 | header_receive | 已经接收到了响应头,但是还没有接收响应体 |
3 | loading | 正在下载响应体 |
4 | done | 响应体下载完成,可以直接使用 responseText |
遵循HTTP
- var xhr = new XMLHttpRequest();
- // 设置请求行
- xhr.open('get', 'time.php');
- // 设置请求头
- xhr.setRequestHeader('Accept', 'text/plain');
- // 设置请求体
- xhr.send(null);
- xhr.addEventListener('readystatechange', function () {
- if (this.readyState === 4 && this.status === 200) {
- // 获取响应状态码
- console.log(this.status);
- // 获取响应状描述
- console.log(this.statusText);
- // 获取响应头信息
- console.log(this.getResponseHeader('Content-Type')); // 指定响应头
- console.log(this.getAllResponseHeaders()); // 全部响应头
- // 转换成数组
- console.log(this.getAllResponseHeaders().split("\n"));
- // 获取响应头中的某一个信息
- console.log(this.getResponseHeader('server'));
- }
- });
同步与异步
同步:在同一时刻只能做同一件事,在执行一些耗时的事情时不去做其他事情,而是等待
异步:在执行一些耗时的事情是去做其他事情,而不是等待(性能更好,默认为 true)
同步:
- console.time('ajax同步');
- const xhrSync = new XMLHttpRequest();
- xhrSync.open('get', 'time.php', false);
- xhrSync.send(); // 同步代码会卡在 send() 这里
- console.log(xhrSync.responseText);
- console.timeEnd('ajax同步');
异步:
- // 异步性能更好,时间更短
- console.time('ajax异步');
- const xhr = new XMLHttpRequest();
// 这里 第三个参数默认为 true,即不写true时为异步(大多数使用)- xhr.open('get', 'time.php', true);
- xhr.send();
- console.log(xhr.responseText);
- console.timeEnd('ajax异步');
AJAX 初识的更多相关文章
- day059 ajax初识 登录认证练习
ajax初识 ajax有两个特点: 一个是异步,另一个是浏览器页面局部刷新(这个特点是用户感受不到的时候进行的) 示例: 页面输入两个整数,通过AJAX传输到后端计算结果并返回 在HTML文件中: & ...
- Ajax—初识
看DRP的过程.又一次学习了一遍Ajax.更深刻的体会到了Ajax所具有的魅力.Ajax是一种技术或者方法,更是一 种艺术.它让我们的程序以一种更完美的姿态呈如今用户面前.以下就让我们一起走进Ajax ...
- 70、django之Ajax初识
Ajax准么说是用于Javascript与服务器端进行交互的,我们之前呢没有了解ajax也同样可以完成与服务器的交互,那么ajax的优势在哪里?首先ajax是异步交互的也就是说我们基本不会遇到卡顿现象 ...
- AJAX初识(原生JS版AJAX和Jquery版AJAX)
一.什么是JSON 1.介绍 JSON独立于语言,是一种与语言无关的数据格式. JSON指的是JavaScript对象表示法(JavaScript Object Notation) JSON是轻量级的 ...
- day059-60 ajax初识 登录认证练习 form装饰器, form和ajax上传文件 contentType
一.ajax 的特点 1.异步交互:客户端发出一个请求后,需要等待服务器响应结束后, 才能发出第二个请求 2.局部刷新:给用户的感受是在不知不觉中完成请求和响应过程. 二.ajax 模板示例 ($.a ...
- django之Ajax初识
Ajax准么说是用于Javascript与服务器端进行交互的,我们之前呢没有了解ajax也同样可以完成与服务器的交互,那么ajax的优势在哪里?首先ajax是异步交互的也就是说我们基本不会遇到卡顿现象 ...
- jQuery的Ajax初识
1. 什么是Ajax? Ajax是“Asynchronous Javascript And XML(异步Javascript和XML)”的缩写, 是指一种创建交互式网页应用的网站开发技术. Ajax不 ...
- Django - Ajax初识
当需要在弹出的对话框中,做判断操作时,需要用到ajax 1.host.html <!DOCTYPE html><html lang="en"><hea ...
- ajax初识
Ajax 全称为:"Asynchronous JavaScript and XML"(异步 JavaScript 和 XML) 它并不是 JavaScript 的一种单一技术,而是 ...
随机推荐
- 刷题记录:[CISCN2019 东北赛区 Day2 Web3]Point System
目录 刷题记录:[CISCN2019 东北赛区 Day2 Web3]Point System 知识点 1.padding-oracle attack 2.cbc字节翻转攻击 3.FFMpeg文件读取漏 ...
- 安装mininet 一直显示 ‘Cloning into openflow'
问题描述. 安装mininet卡在了下载openflow. git clone --branch 2.2.2 git@github.com:mininet/mininet.git ,然后输入命令./i ...
- ThreadLocal:的面试
ThreadLocal: 为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地编写出优美的多线程程序. 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变 ...
- odoo开发笔记 -- 跨域Refused to display in a frame because it set 'X-Frame-Options' to 'DENY'
场景描述: odoo界面嵌入iframe,Refused to display in a frame because it set 'X-Frame-Options' to 'DENY' 跨域请求失败 ...
- WebGL调试工具分享
学习WebGL,我们需要一些好用的调试工具,下面分享3个常用的调试工具. WebGL Inspector 下载地址:https://github.com/benvanik/WebGL-Inspecto ...
- EasyNVR摄像机网页Chrome无插件视频播放功能二次开发之通道配置文件上传下载示例代码
背景需求 熟悉EasyNVR产品的朋友们都知道,产品设计初期根据整个直播流程层级,我们将EasyNVR无插件直播系统划分为:硬件层.能力层.应用层,连接硬件与应用之间的桥梁,同时屏蔽各种厂家硬件的不同 ...
- [LeetCode] 675. Cut Off Trees for Golf Event 为高尔夫赛事砍树
You are asked to cut off trees in a forest for a golf event. The forest is represented as a non-nega ...
- 源码分析之Handler
Handler是Android中的消息机制实现,可以实现UI线程和子线程的消息传递,这里就来深入了解Android的消息机制,来分析Handler的源代码 入手实例 在Android开发中,子线程与主 ...
- Postman系列三:Postman中post接口实战(上传文件、json请求)
一:接口测试过程中GET请求与POST请求的主要区别 从开发角度我们看get与post的主要区别是:1.Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据:2.Get安全性比Post低 ...
- php xml转array的方法
php xml转array的方法 <pre><?php $responseXml='<xml><appid>12</appid></xml& ...