aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/web/api/window/setimmediate/index.html
blob: 816ffce1436d74ad30ea3dd0d944d6cd6084c403 (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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
---
title: Window.setImmediate()
slug: Web/API/Window/setImmediate
translation_of: Web/API/Window/setImmediate
---
<div>{{APIRef("HTML DOM")}}{{Non-standard_header}}</div>

<p>Esse método é usado para interromper operações de longa duração e executar uma função de retorno de chamada imediatamente após o navegador ter concluído outras operações, como eventos e atualizações de exibição.</p>

<div class="note">Não se espera que este método se torne padrão, e é implementado somente por compilações recentes do Internet Explorer e Node.js 0.10+. Existem resistencias de ambos <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=686201" title="https://bugzilla.mozilla.org/show_bug.cgi?id=686201">Gecko</a> (Firefox) e <a href="http://code.google.com/p/chromium/issues/detail?id=146172" title="http://code.google.com/p/chromium/issues/detail?id=146172">Webkit</a> (Google/Apple).</div>

<h2 id="Sintaxe">Sintaxe</h2>

<pre class="syntaxbox">var <em>immediateID</em> = setImmediate(<em>func</em>, [<em>param1</em>, <em>param2</em>, ...]);
var <em>immediateID</em> = setImmediate(<em>func</em>);
</pre>

<ul>
 <li>onde <code>immediateID</code> é o ID da immediate que poderá ser usado depois com {{ domxref("window.clearImmediate") }}.</li>
 <li><code>func</code> é a função que será executada.</li>
</ul>

<p>Todos parametros serão passados diretamente para sua função .</p>

<h2 id="Notas">Notas</h2>

<p>O método {{ domxref("window.clearImmediate") }} pode ser usado para limpar as ações immediate, como por exemplo {{ domxref("window.clearTimeout") }} para {{ domxref("window.setTimeout") }}.</p>

<p>Esse método pode ser usado ao invés de <code>setTimeout(fn, 0)</code>, para executar <a href="http://www.nczonline.net/blog/2009/08/11/timed-array-processing-in-javascript/" title="http://www.nczonline.net/blog/2009/08/11/timed-array-processing-in-javascript/">operações pesadas</a></p>

<p>Essa função pode ser emulada de algumas maneiras:</p>

<ul>
 <li><span style="line-height: 22px;">{{ domxref("window.postMessage") }} pode ser usada para disparar um </span>immediate mas produzindo um callback. Tenha em mente que o Internet Explorer 8 inclui uma versão síncrona do postMessage, que não deverá ser usado como alternativa.</li>
 <li><a href="/en-US/docs/Web/API/MessageChannel" title="http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#channel-messaging">MessageChannel</a> pode ser usado com confiança dentro de Web Workers onde a semantica do postMessage significa que não pode ser usado lá.</li>
 <li><code>setTimeout(fn, 0)</code><em>pode</em> ser usado potencialmente, no entanto, como é apertado em 4ms para temporizadores aninhados com mais de 5 profundidades <a href="https://html.spec.whatwg.org/multipage/webappapis.html#timers">por especificação HTML</a>, não faz para um polifil adequado para o imediatismo natural de setImmediate.</li>
</ul>

<p>Todas essas técnicas são incorporadas em um <a href="https://github.com/NobleJS/setImmediate">setImmediate polyfill</a>.</p>

<h2 id="Especificações">Especificações</h2>

<p>Não faz parte de nenhuma especificação e não em uma faixa de padrões.</p>

<h2 id="Browser_compatibility">Compatibilidade com navegadores</h2>

<p>{{ CompatibilityTable }}</p>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Chrome</th>
   <th>Edge</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{ CompatNo }}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{ CompatNo }}</td>
   <td>10</td>
   <td>{{ CompatNo }}</td>
   <td>{{ CompatNo }}</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Android</th>
   <th>Edge</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{ CompatNo }}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{ CompatNo }}</td>
   <td>{{ CompatNo }}</td>
   <td>{{ CompatNo }}</td>
   <td>{{ CompatNo }}</td>
  </tr>
 </tbody>
</table>
</div>

<h2 id="Ver_também">Ver também</h2>

<p>{{ domxref("window.clearImmediate") }}</p>

<p>{{ spec("https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/setImmediate/Overview.html", "Specification: Efficient Script Yielding") }}</p>

<p><a class="external" href="http://ie.microsoft.com/testdrive/Performance/setImmediateSorting/Default.html">Microsoft setImmediate API Demo</a></p>

<p>{{ languages( { "zh-cn": "zh-cn/DOM/window.setImmediate" } ) }}</p>