Ajax 即 Asynchronous Javascript And XML (异步 JavaScript 和 XML),是指一种建立交互式网页应用的网页开发技术。在无需从新加载整个网页的状况下,可以更新部分网页的技术。通常咱们使用 XMLHTTPRequest、Fetch API、ActiveXObject(低版本 IE) ,来现实 AJAX 功能。javascript
若是你对先后端交互流程不熟悉能够看我以前写的简单的先后端交互流程(AJAX)。
若是你是想了解上传文件之类的,那么你能够看前端文件上传-javascript-ajax。html
XMLHTTPRequest 咱们如今用的最多的,基本能知足你的全部要求。可是咱们平常只用了一部分 XML(早期),JSON(用的最多),text(比较少,要否则也是JSON串)。同时支持 progress 事件监视进度,事件实现 ProgressEvent 接口。2008年2月提出了XMLHttpRequest Level 2 草案。前端
能够经过设置一个 XMLHttpRequest 对象的 responseType 属性来改变一个从服务器上返回的响应的数据类型.可用的属性值为空字符串 (默认), "arraybuffer", "blob", "document", "json" 和 "text". response 属性的值会根据 responseType 属性包含实体主体(entity body), 它可能会是一个 ArrayBuffer, Blob, Document, JSON, string, 或者为NULL(若是请求未完成或失败)。
URL.createObjectURL(fileInput.files[0])
生成 Blob 地址直接用,有效下降转为 base64 以后解析异常的风险)。FileReader 让 Web应用程序拥有异步读取存储在用户计算机上文件(或原始数据缓冲区)的能力,使用 File 或 Blob 对象指定要读取的文件或数据。java
FileReader.abort()
FileReader.readAsArrayBuffer()
FileReader.readAsBinaryString()
FileReader.readAsDataURL()
data: URL
格式的字符串以表示所读取文件的内容。FileReader.readAsText()
File 对象能够是来自用户在一个 <input> 元素上选择文件后返回的 FileList 对象,也能够来自拖放操做生成的 DataTransfer 对象,还能够是来自在一个 HTMLCanvasElement 上执行 mozGetAsFile() 方法后返回结果。
TypedArray 类型数组对象,描述一个底层的二进制数据缓存区的一个相似数组(array-like)视图。事实上,没有名为 TypedArray的全局对象,也没有一个名为的 TypedArray构造函数。相反,有许多不一样的全局对象,下面会列出这些针对特定元素类型的类型化数组的构造函数。在下面的页面中,你会找到一些无论什么类型都公用的属性和方法。web
类型 | 大小(字节单位) | 描述 | Web IDL type | C语言中的等效类型 |
---|---|---|---|---|
Int8Array | 1 | 8位二进制带符号整数 -2^7~(2^7) - 1 | byte | int8_t |
Uint8Array | 1 | 8位无符号整数 0~(2^8) - 1 | octet | uint8_t |
Int16Array | 2 | 16位二进制带符号整数 -2^15~(2^15)-1 | short | int16_t |
Uint16Array | 2 | 16位无符号整数 0~(2^16) - 1 unsigned | short | uint16_t |
Int32Array | 4 | 32位二进制带符号整数 -2^31~(2^31)-1 | long | int32_t |
Uint32Array | 4 | 32位无符号整数 0~(2^32) - 1 unsigned | int | uint32_t |
Float32Array | 4 | 32位IEEE浮点数 unrestricted | float | float |
Float64Array | 8 | 64位IEEE浮点数 unrestricted | double | double |
接下来就是咱们的骚操做ajax