JavaScript中容易混淆的readyState

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但作用的领域完全不同。是否清楚一点了?

发表评论

电子邮件地址不会被公开。 必填项已用*标注