JavaScript中有几个很容易混淆的readyState属性,特此小结一下。
1. HTML DOM readyState属性
readyState 属性返回当前文档的状态(载入中……)。
该属性返回以下值:
- uninitialized – 还未开始载入
- loading – 载入中
- interactive – 已加载,文档与用户可以开始交互
- complete – 载入完成
下面代码返回当前文档的载入状态:
document.write(document.readyState);
2. AJAX中的xmlhttp.readyState:
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
- 0: 请求未初始化
- 1: 服务器连接已建立
- 2: 请求已接收
- 3: 请求处理中
- 4: 请求已完成,且响应已就绪
看下面代码片段:
xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }
当 readyState等于4且状态为200时,表示响应已就绪。
3. FileReader.readyState
HTML5中新增加File API,FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。FileReader.readyState返回表示FileReader状态的数字。取值如下:
常量名 | 值 | 描述 |
EMPTY |
0 |
还没有加载任何数据. |
LOADING |
1 |
数据正在被加载. |
DONE |
2 |
已完成全部的读取请求. |
虽然都是readyState但作用的领域完全不同。是否清楚一点了?