Skip to content

Commit a70d6ae

Browse files
committed
article final polish and task translation
1 parent 06cc681 commit a70d6ae

File tree

3 files changed

+38
-38
lines changed

3 files changed

+38
-38
lines changed
Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,50 @@
1-
The console output is: 1 7 3 5 2 6 4.
1+
Ieșirea din consolă este: 1 7 3 5 2 6 4.
22

3-
The task is quite simple, we just need to know how microtask and macrotask queues work.
3+
Sarcina este destul de simplă, trebuie doar să știm cum funcționează microtask și macrotask queues.
44

5-
Let's see what's going on, step by step.
5+
Să vedem ce se întâmplă, pas cu pas.
66

77
```js
88
console.log(1);
9-
// The first line executes immediately, it outputs `1`.
10-
// Macrotask and microtask queues are empty, as of now.
9+
// Prima linie se execută imediat, aceasta scoate `1`.
10+
// Macrotask și microtask queues sunt goale, deocamdată.
1111

1212
setTimeout(() => console.log(2));
13-
// `setTimeout` appends the callback to the macrotask queue.
14-
// - macrotask queue content:
13+
// `setTimeout` adaugă apelul callback la macrotask queue.
14+
// - conținutul macrotask queue:
1515
// `console.log(2)`
1616

1717
Promise.resolve().then(() => console.log(3));
18-
// The callback is appended to the microtask queue.
19-
// - microtask queue content:
18+
// Callback-ul este adăugat la microtask queue.
19+
// - conținutul microtask queue:
2020
// `console.log(3)`
2121

2222
Promise.resolve().then(() => setTimeout(() => console.log(4)));
23-
// The callback with `setTimeout(...4)` is appended to microtasks
24-
// - microtask queue content:
25-
// `console.log(3); setTimeout(...4)`
23+
// Callback-ul cu `setTimeout(...4)` este atașat la microtask-uri
24+
// - conținutul microtask queue:
25+
// `console.log(3); setTimeout(...4)`
2626

2727
Promise.resolve().then(() => console.log(5));
28-
// The callback is appended to the microtask queue
29-
// - microtask queue content:
30-
// `console.log(3); setTimeout(...4); console.log(5)`
28+
// Callback-ul este adăugat la microtask queue
29+
// - conținutul microtask queue:
30+
// `console.log(3); setTimeout(...4); console.log(5)` `
3131

3232
setTimeout(() => console.log(6));
33-
// `setTimeout` appends the callback to macrotasks
34-
// - macrotask queue content:
33+
// `setTimeout` atașează callback-ul la macrotask-uri
34+
// - conținutul macrotask queue:
3535
// `console.log(2); console.log(6)`
3636

3737
console.log(7);
38-
// Outputs 7 immediately.
38+
// Iese 7 imediat.
3939
```
4040

41-
To summarize,
41+
În sumar,
4242

43-
1. Numbers `1` и `7` show up immediately, because simple `console.log` calls don't use any queues.
44-
2. Then, after the main code flow is finished, the microtask queue runs.
45-
- It has commands: `console.log(3); setTimeout(...4); console.log(5)`.
46-
- Numbers `3` и `5` show up, while `setTimeout(() => console.log(4))` adds the `console.log(4)` call to the end of the macrotask queue.
47-
- The macrotask queue is now: `console.log(2); console.log(6); console.log(4)`.
48-
3. After the microtask queue becomes empty, the macrotask queue executes. It outputs `2`, `6`, `4`.
43+
1. Numerele `1` и `7` apar imediat, deoarece apelurile simple `console.log` nu utilizează nici un queue.
44+
2. Apoi, după ce fluxul principal de cod este terminat, microtask queue se execută.
45+
- Aceasta are comenzile: `console.log(3); setTimeout(...4); console.log(5)`.
46+
- Numerele `3` и `5` apar, în timp ce `setTimeout(() => console.log(4))` adaugă apelul `console.log(4)` la sfârșitul macrotask queue.
47+
- Macrotask queue este acum: `console.log(2); console.log(6); console.log(4)`.
48+
3. După ce microtask queue devine goală, macrotask queue se execută. Aceasta scoate `2`, `6`, `4`.
4949

50-
Finally, we have the output: `1 7 3 5 2 6 4`.
50+
În cele din urmă, avem ieșirea: `1 7 3 5 2 6 4`.

2-ui/99-ui-misc/03-event-loop/2-micro-macro-queue/task.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ importance: 5
22

33
---
44

5-
# What will be the output of this code?
5+
# Care va fi ieșirea acestui cod?
66

77
```js
88
console.log(1);

2-ui/99-ui-misc/03-event-loop/article.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ Până acum, destul de simplu, nu?
4646

4747
Aceasta a fost teoria. Acum să vedem cum putem aplica aceste cunoștințe.
4848

49-
## Cazul de utilizare 1: împărțirea sarcinilor flămânde de CPU
49+
## Cazul de utilizare 1: împărțirea sarcinilor flămânde pentru CPU
5050

51-
Să presupunem că avem o sarcină flămândă de CPU.
51+
Să presupunem că avem o sarcină flămândă pentru CPU.
5252

5353
De exemplu, evidențierea sintaxei (utilizată pentru a colora exemplele de cod de pe această pagină) este destul de grea pentru CPU. Pentru a evidenția codul, se efectuează analiza, se creează multe elemente colorate, se adaugă la document - pentru o cantitate mare de text, ceea ce necesită mult timp.
5454

5555
În timp ce motorul este ocupat cu evidențierea sintaxei, nu poate face alte lucruri legate de DOM, procesa evenimentele utilizatorului etc. Poate chiar să provoace browserul să "sughițe" sau chiar să se "blocheze" pentru un timp, ceea ce este inacceptabil.
5656

57-
Putem evita problemele împărțind sarcina mare în bucăți. Evidențiază primele 100 de rânduri, apoi programați `setTimeout` (cu întârziere zero) pentru următoarele 100 de rânduri, și așa mai departe.
57+
Putem evita problemele împărțind sarcina mare în bucăți. Evidențiază primele 100 de rânduri, apoi programa `setTimeout` (cu întârziere zero) pentru următoarele 100 de rânduri, și așa mai departe.
5858

5959
Pentru a demonstra această abordare, de dragul simplității, în loc de evidențierea textului, să luăm o funcție care numără de la `1` la `1000000000`.
6060

@@ -89,7 +89,7 @@ let start = Date.now();
8989

9090
function count() {
9191

92-
// face o parte din munca grea (*)
92+
// să facă o parte din munca grea (*)
9393
do {
9494
i++;
9595
} while (i % 1e6 != 0);
@@ -113,7 +113,7 @@ O singură execuție a lui `count` face o parte din treabă `(*)`, și apoi se r
113113
2. A doua rulare numără: `i=1000001..2000000`.
114114
3. ...și așa mai departe.
115115

116-
Acum, dacă apare o nouă sarcină secundară (de exemplu, evenimentul `onclick`) în timp ce motorul este ocupat cu execuția părții 1, aceasta este pusă la coadă și apoi se execută când partea 1 s-a terminat, înainte de partea următoare. Revenirile periodice la event loop între execuțiile `count` oferă suficient "aer" pentru ca motorul JavaScript să facă altceva, să reacționeze la alte acțiuni ale utilizatorului.
116+
Acum, dacă apare o nouă sarcină secundară (e.g. evenimentul `onclick`) în timp ce motorul este ocupat cu execuția părții 1, aceasta este pusă la coadă și apoi se execută când partea 1 s-a terminat, înainte de partea următoare. Revenirile periodice la event loop între execuțiile `count` oferă suficient "aer" pentru ca motorul JavaScript să facă altceva, să reacționeze la alte acțiuni ale utilizatorului.
117117

118118
Lucrul notabil este că ambele variante -- cu și fără diviziunea muncii prin `setTimeout` -- sunt comparabile ca viteză. Nu este o diferență prea mare în timpul total pentru numărare.
119119

@@ -152,9 +152,9 @@ Dacă o rulezi, este ușor de observat că durează semnificativ mai puțin timp
152152

153153
De ce?
154154

155-
Este simplu: după cum vă amintiți, este o întârziere minimă în browser de 4 ms pentru multe apeluri nested `setTimeout`. Chiar dacă setăm `0`, este `4ms` (sau un pic mai mult). Deci cu cât programăm mai devreme - cu atât mai repede se execută.
155+
Este simplu: după cum vă amintiți, este o întârziere minimă în browser de 4 ms pentru multe apeluri nested `setTimeout`. Chiar dacă setăm `0`, este `4ms` (sau un pic mai mult). Deci cu cât programăm mai devreme - cu atât mai repede rulează.
156156

157-
În cele din urmă, am împărțit în părți o sarcină flămândă de CPU - acum nu blochează interfața cu utilizatorul. Iar timpul său total de execuție nu este cu mult mai mare.
157+
În cele din urmă, am împărțit în părți o sarcină flămândă pentru CPU - acum nu blochează interfața utilizatorului. Iar timpul său total de execuție nu este cu mult mai mare.
158158

159159
## Cazul de utilizare 2: indicare de progres
160160

@@ -183,7 +183,7 @@ Iată demonstrația, modificările aduse lui `i` nu vor apărea până când fun
183183
</script>
184184
```
185185

186-
...Dar este posibil să dorim să afișăm ceva în timpul sarcinii, e.g. o bară de progres.
186+
...Dar este de asemenea posibil să dorim să afișăm ceva în timpul sarcinii, e.g. o bară de progres.
187187

188188
Dacă împărțim sarcina grea în bucăți folosind `setTimeout`, atunci modificările sunt pictate între ele.
189189

@@ -213,10 +213,10 @@ Asta arată mai frumos:
213213
</script>
214214
```
215215

216-
Acum, `<div>` arată valorile crescânde ale lui `i`, un fel de bară de progres.
216+
Acum `<div>`-ul arată valorile crescânde ale lui `i`, un fel de bară de progres.
217217

218218

219-
## Cazul de utilizare 3: a face ceva după eveniment
219+
## Cazul de utilizare 3: făcând ceva după eveniment
220220

221221
Într-un gestionar de evenimente putem decide să amânăm anumite acțiuni până când evenimentul a crescut și a fost gestionat la toate nivelele. Putem face asta prin ambalarea codului în `setTimeout` cu întârziere zero.
222222

@@ -283,7 +283,7 @@ Iată un exemplu cu "contorizarea barei de progres", similar cu cel prezentat an
283283
284284
function count() {
285285
286-
// face o parte din munca grea (*)
286+
// să facă o parte din munca grea (*)
287287
do {
288288
i++;
289289
progress.innerHTML = i;

0 commit comments

Comments
 (0)