рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдкреБрд╕реНрддрдХ)

рдЫрд╡рд┐
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреАрди рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдВред рдпрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЖрдкрдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЯреНрд░реЗрд╡рд░ рдмрд░реНрдирд╣реИрдо рдХреА рдЙрддреНрдХреГрд╖реНрдЯ рдкреБрд╕реНрддрдХ, Async рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЗрд╡рд▓ 90 рдкреГрд╖реНрда, рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╡реЗрдВрдЯ рд▓реВрдк, рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди / рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕реА, рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб / рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ (рдХрд╛рд░реНрдпрдХрд░реНрддрд╛), рд╡рд╛рджреЗ, рдлрд╛рдЗрдмрд░, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдЬреИрд╕реЗ рд╡рд┐рд╖рдп рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВред

рддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛?
for (var i = 1; i <= 3; i++) { setTimeout(function(){ console.log(i); }, 0); }; 

рдЬрд╡рд╛рдм рд╣реИ
4
4
4

UPD рджреВрд╕рд░рд╛ рдкреНрд░рд╢реНрди рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХрд┐рддрдиреЗ (рд▓рдЧрднрдЧ) рдмрд╛рд░ рд╕реЗрдЯ- setInterval(func, 0) ?
 var fireCount = 0; var start = new Date; var timer = setInterval(function() { if (new Date - start > 1000) { clearInterval(timer); console.log(fireCount); return; } fireCount++; }, 0); 

рдЬрд╡рд╛рдм рд╣реИ
250 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ (рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ 240-250)

рдпрджрд┐ рдЖрдк рдЖрд╢реНрдЪрд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ - рдЙрддреНрддрд░ рдкреБрд╕реНрддрдХ рдореЗрдВ рд╣реИрдВ ред

рд╕рд╛рдордЧреНрд░реА
  • рдкрд░рд┐рдЪрдп
    • рд╕реНрд╡рд░реНрдЧ рдореЗрдВ рдХрд╖реНрдЯ
    • рдпрд╣ рдкреБрд╕реНрддрдХ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣реИ?
    • рд▓рд░реНрдирд┐рдВрдЧ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди
    • рдорджрдж рдХреЗ рд▓рд┐рдП рдХрд╣рд╛рдБ рдореБрдбрд╝реЗрдВ?
    • рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдЪрд▓ рд░рд╣рд╛ рд╣реИ
    • рдЗрд╕ рдкреБрд╕реНрддрдХ рдореЗрдВ рдХреЛрдб рд╢реИрд▓реА
    • AltJS рдкрд░ рдПрдХ рд╢рдмреНрдж
    • рдЗрд╕ рдкреБрд╕реНрддрдХ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди

  • рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдордЭрдирд╛
    • рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдИрд╡реЗрдВрдЯ
    • Async рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдкреНрд░рдХрд╛рд░
    • Async Functions рд▓рд┐рдЦрдирд╛
    • Async рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛
    • рдЕрди-рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЙрд▓рдмреИрдХ
    • рдЬреЛ рд╣рдордиреЗ рд╕реАрдЦрд╛ рд╣реИ

  • рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рддрд░рдг
    • рдкрдмрд╕рдм
    • рдЗрд╡реЗрдВрдЯ рдХрд┐рдП рдЧрдП рдореЙрдбрд▓
    • рдХрд╕реНрдЯрдо jQuery рдИрд╡реЗрдВрдЯ
    • рдЬреЛ рд╣рдордиреЗ рд╕реАрдЦрд╛ рд╣реИ

  • рд╡рд╛рджреЗ рдФрд░ рдЖрдХреНрд╖реЗрдк
    • рд╡рд╛рджреЛрдВ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЗрддрд┐рд╣рд╛рд╕
    • рд╡рд╛рджреЗ рдХрд░рдирд╛
    • рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдирд╛
    • рдкреНрд░рдЧрддрд┐ рд╕реВрдЪрдирд╛рдПрдБ
    • рд╡рд╛рджреЛрдВ рдХрд╛ рдореЗрд▓
    • рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп
    • jQuery рдмрдирд╛рдо рд╡рд╛рджреЗ / рдП
    • рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде рдХреЙрд▓рдмреИрдХ рдХреА рдЬрдЧрд╣
    • рдЬреЛ рд╣рдордиреЗ рд╕реАрдЦрд╛ рд╣реИ

  • Async.js рдХреЗ рд╕рд╛рде рдлреНрд▓реЛ рдХрдВрдЯреНрд░реЛрд▓
    • Async рдЖрджреЗрд╢ рд╕рдорд╕реНрдпрд╛
    • Async рд╕рдВрдЧреНрд░рд╣ рд╡рд┐рдзрд┐рдпрд╛рдБ
    • Async.js рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд╛ рдЖрдпреЛрдЬрди
    • рдбрд╛рдпрдирд╛рдорд┐рдХ рдПрд╕рд┐рдВрдХреНрд╕ рдХрддрд╛рд░
    • рдЪрд░рдг рдХреЗ рд╕рд╛рде рдиреНрдпреВрдирддрдо рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг
    • рдЬреЛ рд╣рдордиреЗ рд╕реАрдЦрд╛ рд╣реИ

  • рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдЖрдпрд╛рдореА
    • рд╡реЗрдм рдХрд╛рд░реНрдпрдХрд░реНрддрд╛
    • рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдиреЛрдб рдХрд╛рд░реНрдпрдХрд░реНрддрд╛
    • рдЬреЛ рд╣рдордиреЗ рд╕реАрдЦрд╛ рд╣реИ

  • Async рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ
    • рд╕реАрдорд╛рдПрдБ рдФрд░ рдЧреБрд╣рд┐рдХрд╛рдпрди
    • <рд╕реНрдХреНрд░рд┐рдкреНрдЯ> рдЯреИрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛
    • рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ
    • рдЬреЛ рд╣рдордиреЗ рд╕реАрдЦрд╛ рд╣реИ

  • рдЯреИрдорд┐рдВрдЧ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг
    • TameJS
    • StratifiedJS
    • Kaffeine
    • Streamline.js
    • рдиреЛрдб-рд░реЗрд╢реЗ
    • рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рднрд╡рд┐рд╖реНрдп: рдЬрдирд░реЗрдЯрд░

Source: https://habr.com/ru/post/In207778/


All Articles