aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/xmlhttprequest/timeout/index.html
blob: 941372fdf5911b7cc9720e3adcf7bca6eadacea1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
---
title: XMLHttpRequest.timeout
slug: Web/API/XMLHttpRequest/timeout
tags:
  - AJAX
  - XMLHttpRequest
translation_of: Web/API/XMLHttpRequest/timeout
---
<div>{{APIRef('XMLHttpRequest')}}</div>

<p><code><strong>XMLHttpRequest.timeout</strong></code> 是一个无符号长整型数,代表着一个请求在被自动终止前所消耗的毫秒数。默认值为 0,意味着没有超时。超时并不应该用在一个 {{Glossary('document environment')}} 中的同步 XMLHttpRequests  请求中,否则将会抛出一个 <code>InvalidAccessError</code> 类型的错误。当超时发生, <a href="/zh-CN/docs/Web/Events/timeout">timeout</a> 事件将会被触发。{{gecko_minversion_inline("12.0")}}</p>

<div class="note">
<p><strong>注意</strong>:你不能在拥有的window中,给同步请求使用超时。</p>
</div>

<p><a href="https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests#.E4.BE.8B.E5.AD.90.3A_.E4.BD.BF.E7.94.A8.E8.B6.85.E6.97.B6">在异步请求中使用 timeout</a></p>

<p>在IE中,超时属性可能只能在调用 <a href="/zh-CN/docs/Web/API/XMLHttpRequest/open">open()</a> 方法之后且在调用 <a href="/zh-CN/docs/Web/API/XMLHttpRequest/send">send()</a> 方法之前设置。</p>

<h2 id="示例">示例</h2>

<pre><code>var xhr = new XMLHttpRequest();
xhr.open('GET', '/server', true);

xhr.timeout = 2000; // 超时时间,单位是毫秒

xhr.onload = function () {
  // 请求完成。在此进行处理。
};

xhr.ontimeout = function (e) {
  // XMLHttpRequest 超时。在此做某事。
};

xhr.send(null);</code></pre>

<h2 id="规范">规范</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col"><font><font>规范</font></font></th>
   <th scope="col">状态</th>
   <th scope="col">注释</th>
  </tr>
  <tr>
   <td>{{SpecName('XMLHttpRequest', '#the-timeout-attribute')}}</td>
   <td>{{Spec2('XMLHttpRequest')}}</td>
   <td><font><font>WHATW G</font></font>living standard</td>
  </tr>
 </tbody>
</table>