You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pentru `setInterval`, funcția rămâne în memorie până când este apelată `clearInterval`.
234
234
235
-
Există un efect secundar. O funcție face referire la mediul lexical extern, astfel încât, în timp ce ea trăiește, trăiesc și variabilele externe. Acestea pot ocupa mult mai multă memorie decât funcția însăși. Deci atunci când nu mai avem nevoie de funcția programată, este mai bine să o anulăm, chiar dacă este foarte mică.
235
+
Există un efect secundar. O funcție face referire la mediul lexical extern, astfel încât, în timp ce ea trăiește, trăiesc și variabilele externe. Acestea pot ocupa mult mai multă memorie decât funcția însăși. Deci atunci când nu mai avem nevoie de funcția planificată, este mai bine să o anulăm, chiar dacă este foarte mică.
236
236
````
237
237
238
238
## setTimeout cu Întârziere zero
@@ -258,7 +258,7 @@ Există de asemenea cazuri avansate de utilizare a timeout-ului cu întârziere
258
258
````smart header="Întârzierea zero nu este de fapt zero (într-un browser)"
259
259
În browser, este o limitare pentru cât de des pot rula temporizatoarele imbricate. [HTML Living Standard](https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers) spune: "după cinci temporizatoare imbricate, intervalul este forțat să fie de cel puțin 4 milisecunde.".
260
260
261
-
Să demonstrăm ce înseamnă acest lucru cu exemplul de mai jos. Apelul `setTimeout` cuprins în el se reprogramează singur cu întârziere zero. Fiecare apel reține întârzierea reală din cel precedent în matricea `times`. Cum arată întârzierile reale? Să vedem:
261
+
Să demonstrăm ce înseamnă acest lucru cu exemplul de mai jos. Apelul `setTimeout` cuprins în el se replanifică singur cu întârziere zero. Fiecare apel reține întârzierea reală din cel precedent în matricea `times`. Cum arată întârzierile reale? Să vedem:
262
262
263
263
```js run
264
264
let start = Date.now();
@@ -281,22 +281,22 @@ Un lucru similar se întâmplă dacă folosim `setInterval` în loc de `setTimeo
281
281
282
282
Această limitare provine din timpuri străvechi și multe scripturi se bazează pe ea, așa că există din motive istorice.
283
283
284
-
Pentru JavaScript pe server, această limitare nu există și există alte modalități de a programa o sarcină asincronă imediată, cum ar fi [setImmediate](https://nodejs.org/api/timers.html#timers_setimmediate_callback_args) pentru Node.js. Deci această notă este specifică browserului.
284
+
Pentru JavaScript pe server, această limitare nu există și există alte modalități de a planifica o sarcină asincronă imediată, cum ar fi [setImmediate](https://nodejs.org/api/timers.html#timers_setimmediate_callback_args) pentru Node.js. Deci această notă este specifică browserului.
285
285
````
286
286
287
-
## Summary
287
+
## Sumar
288
288
289
-
- Methods `setTimeout(func, delay, ...args)` and `setInterval(func, delay, ...args)` allow us to run the `func` once/regularly after `delay` milliseconds.
290
-
- To cancel the execution, we should call `clearTimeout/clearInterval` with the value returned by `setTimeout/setInterval`.
291
-
- Nested `setTimeout` calls are a more flexible alternative to `setInterval`, allowing us to set the time *between* executions more precisely.
292
-
- Zero delay scheduling with `setTimeout(func, 0)` (the same as `setTimeout(func)`) is used to schedule the call "as soon as possible, but after the current script is complete".
293
-
- The browser limits the minimal delay for five or more nested calls of `setTimeout` or for `setInterval` (after 5th call) to 4ms. That's for historical reasons.
289
+
- Metodele `setTimeout(func, delay, ...args)` și `setInterval(func, delay, ...args)` ne permit să rulăm `func` o dată/regulat după `delay` milisecunde.
290
+
- Pentru a anula execuția, ar trebui să apelăm `clearTimeout/clearInterval` cu valoarea returnată de `setTimeout/setInterval`.
291
+
- Apelurile `setTimeout` imbricate reprezintă o alternativă mai flexibilă la `setInterval`, permițându-ne să setăm mai precis timpul *între* execuții.
292
+
- Planificarea cu întârziere zero prin `setTimeout(func, 0)` (la fel ca `setTimeout(func)`) este utilizată pentru a programa apelul "cât mai curând posibil, dar după ce scriptul curent este finalizat".
293
+
- Browserul limitează întârzierea minimă pentru cinci sau mai multe apeluri imbricate ale `setTimeout` sau pentru `setInterval` (după al cincilea apel) la 4ms. Asta din motive istorice.
294
294
295
-
Please note that all scheduling methods do not *guarantee* the exact delay.
295
+
Vă rugăm să rețineți că toate metodele de planificare nu *garantează* întârzierea exactă.
296
296
297
-
For example, the in-browser timer may slow down for a lot of reasons:
298
-
- The CPU is overloaded.
299
-
- The browser tab is in the background mode.
300
-
- The laptop is on battery saving mode.
297
+
De exemplu, temporizatorul din browser poate încetini din multe motive:
298
+
- Procesorul este suprasolicitat.
299
+
- Tab-ul browserului este în fundal.
300
+
- Laptopul este în modul de economisire a bateriei.
301
301
302
-
All that may increase the minimal timer resolution (the minimal delay) to 300ms or even 1000ms depending on the browser and OS-level performance settings.
302
+
Toate acestea pot crește rezoluția minimă a temporizatorului (întârzierea minimă) la 300ms sau chiar 1000ms în funcție de setările de performanță la nivel de browser și de sistem de operare.
0 commit comments