рдЖрдзреБрдирд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ

рдкреНрд░рддреНрдпреЗрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдХреЛрдб рдкрд╛рд╕ рдХрд░рдирд╛ рдХреЛрдИ рдЖрд╕рд╛рди рдХрд╛рдо рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред



рдПрдХ рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдЖрдзреБрдирд┐рдХ рдХреЛрдб рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдпрд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдЖрдзреБрдирд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЯреВрд▓ рдореЗрдВ, рдЖрдзреБрдирд┐рдХ рдпрд╛ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рдХреА рдШреЛрд╖рдгрд╛рддреНрдордХ рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдореЙрдбреНрдпреВрд▓ / рдирд╛рдорд╛рдВрдХрд┐рдд рдкреИрдЯрд░реНрди рд╣рд╛рд╡реА рд╣реИ, рдЬреЛ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рди рд▓реЛрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ:

<script type="module" src="/modern.js"></script> <script nomodule src="/legacy.js"></script> 

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ HTML рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрдЬ рдФрд░ рд╕рдлрд╛рд░реА рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрдирдГ рд▓реЛрдб рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ ред

рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рдлрд╛рд░реА рдлрд┐рдХреНрд╕ рд╣реИ ред рд╕рдлрд╛рд░реА 10.1, рдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ nomodule рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬреЛ рдЗрд╕реЗ рдЖрдзреБрдирд┐рдХ рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рджреЛрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдлрд╝рд╛рд░реА 10 & 11 рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЧреИрд░-рдорд╛рдирдХ beforeload рдШрдЯрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ nomodule рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд┐рдзрд┐ рдПрдХ: рдбрд╛рдпрдирд╛рдорд┐рдХ рдбрд╛рдЙрдирд▓реЛрдб


рдЖрдк рдПрдХ рдЫреЛрдЯреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдбрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЛрдбрд╕реАрдПрд╕рдПрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рдорд╛рдиред рдИрдПрд╕-рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ nomodule рдореЗрдВ nomodule рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдореНрдореАрдж рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ "рд▓рд┐рдЯрдорд╕ рдЯреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг" рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдЖрдзреБрдирд┐рдХ рдпрд╛ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред

 <!-- use a module script to detect modern browsers: --> <script type="module"> self.modern = true </script> <!-- now use that flag to load modern VS legacy code: --> <script> addEventListener('load', function() { var s = document.createElement('script') if ('noModule' in s) { // notice the casing s.type = 'module' s.src = '/modern.js' } else { s.src = '/legacy.js' } document.head.appendChild(s) }) </script> 

рд▓реЗрдХрд┐рди рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рд╕рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ "рд▓рд┐рдЯрдорд╕" рдореЙрдбреНрдпреВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ <sript type="module"> рд╣рдореЗрд╢рд╛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ!

nomodule рдореЗрдВ nomodule рдЖрдк рдЪреЗрдХ рдХрд░рдХреЗ рдЗрдВрдбрд┐рдкреЗрдВрдбреЗрдВрдЯ рдСрдкреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рд╕рдлрд╛рд░реА 10.1 рдЬреИрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рднрд▓реЗ рд╣реА рд╡реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реЛрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ред рдпрд╣рд╛рдБ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рд╣реИ:

 var s = document.createElement('script') if ('noModule' in s) { // notice the casing s.type = 'module' s.src = '/modern.js' } else s.src = '/legacy.js' } document.head.appendChild(s) 

рдпрд╣ рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдзреБрдирд┐рдХ рдпрд╛ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

 <script> $loadjs("/modern.js","/legacy.js") function $loadjs(src,fallback,s) { s = document.createElement('script') if ('noModule' in s) s.type = 'module', s.src = src else s.async = true, s.src = fallback document.head.appendChild(s) } </script> 

рдпрд╣рд╛рдВ рд╕рдордЭреМрддрд╛ рдХреНрдпрд╛ рд╣реИ?

рдкреНрд░реАрд▓реЛрдб

рдЪреВрдВрдХрд┐ рд╕рдорд╛рдзрд╛рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд╣реИ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣рдорд╛рд░реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рдХреЛрдб рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЖрдзреБрдирд┐рдХ рдпрд╛ рд╡рд┐рд░рд╛рд╕рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдерд╛ред рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП HTML рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдирд╣реАрдВ: рдЖрдк рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреИрдХреЗрдЬ рдХреЗ рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ <link rl=modulpreload> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЕрднреА рддрдХ рдХреЗрд╡рд▓ рдХреНрд░реЛрдо modulepreload рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ред

 <link rel="modulepreload" href="/modern.js"> <script type="module">self.modern=1</script> <!-- etc --> 

рдпрджрд┐ рдпрд╣ рддрдХрдиреАрдХ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ, рддреЛ рдЖрдк HTML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЗрди рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХрд╛ рдкреЗрд▓реЛрдб рдЫреЛрдЯрд╛ рд╣реИ, рд╕реНрдкреНрд▓реИрд╢ рд╕реНрдХреНрд░реАрди рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХреЛрдб рдХреА рддрд░рд╣, рддреЛ рдкреНрд░реАрд▓реЛрдб рд╕реНрдХреИрдирд░ рдЫреЛрдбрд╝рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрджрд┐ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг HTML рдЦреАрдВрдЪрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реАрд▓реЛрдб рд╕реНрдХреИрдирд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдФрд░ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдБ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

 <link rel="modulepreload" href="/modern.js"> <script type="module">self.modern=1</script> <script> $loadjs("/modern.js","/legacy.js") function $loadjs(e,d,c){c=document.createElement("script"),self.modern?(c.src=e,c.type="module"):c.src=d,document.head.appendChild(c)} </script> 

рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреА рд╕реВрдЪреА рд▓рдЧрднрдЧ рд╡рд╣реА рд╣реИ рдЬреЛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ <link rl=preload> ред рдХреБрдЫ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП, <link rl=preload as=script crossorigin> рдмрдЬрд╛рдп <link rl=preload as=script crossorigin> рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рдЦрд░рд╛рдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ modulepreload рд╕рдордп рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ modulepreload рд╕рд╛рде modulepreload ред

рд╡рд┐рдзрд┐ рджреЛ: рдЯреНрд░реИрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдк рд╕реНрдореИрд╢рд┐рдВрдЧ рдкрддреНрд░рд┐рдХрд╛ рдореЗрдВ рдЙрддреНрдХреГрд╖реНрдЯ рд▓реЗрдЦ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП HTML рдореЗрдВ рдПрдХ рд╣реА <scrit src=bundle.js> рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЬрдм bundle.js рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдзрд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓реМрдЯрдирд╛ рд╣реИ - рдЖрдзреБрдирд┐рдХ рдпрд╛ рд╡рд┐рд░рд╛рд╕рдд, рдХреИрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдорд╛рдиреНрдпрддрд╛ рджреА рдЧрдИ рдереА, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрдВрднреАрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ:

  • рдЪреВрдВрдХрд┐ рд╕реНрдорд╛рд░реНрдЯ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реНрдерд┐рд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ (рд╕реНрдерд┐рд░ рд╕рд╛рдЗрдЯ рдЬрдирд░реЗрдЯрд░, рдиреЗрдЯрд▓рд╛рдЗрдЬрд╝, рдЖрджрд┐) рдХреЗ рддрд╣рдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
  • рдЗрди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреВрдЖрд░рдПрд▓ рдХреЗ рд▓рд┐рдП рдХреИрд╢рд┐рдВрдЧ рдЕрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд╣реА рдЕрд╕реНрдерд┐рд░ рд╣реИред
  • UA рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХрдард┐рди рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдЧрд▓рдд рд╡рд░реНрдЧреАрдХрд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рд▓рд╛рдЗрди рдХреЛ рд╕реНрдкреВрдл рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рд╣рд░ рджрд┐рди рдирдП рдпреВрдПрдПрд╕ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред

рдЗрди рд╕реАрдорд╛рдУрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рд╣реА рдкрддреЗ рдкрд░ рднреЗрдЬрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рднреЗрджрднрд╛рд╡ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ / рдирд╛рдорд╛рдВрдХрд┐рдд рдкреИрдЯрд░реНрди рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреЗрдЬ рдХреИрдЪреЗрдмрд┐рд▓рд┐рдЯреА рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрд╢рд▓ рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдПрдЪрдЯреАрдПрдордПрд▓-рдЬрдирд░реЗрдЯрд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрдм modulepreload рдХрд╛ рдЙрдкрдпреЛрдЧ modulepreload рдФрд░ рдХрдм preload рдХрд╛ preload ред

 function renderPage(request, response) { let html = `<html><head>...`; const agent = request.headers.userAgent; const isModern = userAgent.isModern(agent); if (isModern) { html += ` <link rel="modulepreload" href="modern.mjs"> <script type="module" src="modern.mjs"></script> `; } else { html += ` <link rel="preload" as="script" href="legacy.js"> <script src="legacy.js"></script> `; } response.end(html); } 

рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА HTML рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрдзреБрдирд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рднрд╛рд╡реА рд╕рдВрдХреНрд░рдордг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд┐рдзрд┐ рддреАрди: рдареАрдХ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░


рдХреНрд░реЛрдо / рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рд╕рдлрд╛рд░реА рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ / рдирд╛рдорд╛рдВрдХрд┐рдд рдкреИрдЯрд░реНрди рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ - рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдмрд╣реБрдд рдХрдо рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдЬ 16-18 рдХреЗ рд╕рд╛рде, рд╕реНрдерд┐рддрд┐ рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдореНрдореАрдж рд╣реИ: рдПрдЬ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреНрд░реЛрдорд┐рдпрдо-рдЖрдзрд╛рд░рд┐рдд рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВред

рдХреБрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЖрджрд░реНрд╢ рд╕рдордЭреМрддрд╛ рд╣реЛрдЧрд╛: 90% рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХреЛрдб рдХрд╛ рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдФрд░ рдкреБрд░рд╛рдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рджреЗрдВред рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд▓реЛрдб рдмрдврд╝реЗрдЧрд╛ред

рд╡реИрд╕реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХрд╛ рд░рд┐рдмреВрдЯ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдореЛрдмрд╛рдЗрд▓ рдмрд╛рдЬрд╛рд░ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рддреЛ рдЗрди рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рд╕реНрд░реЛрдд рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рдХрдордЬреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд╛рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдЖрдк рдПрдХ рдРрд╕реА рд╕рд╛рдЗрдЯ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдпрд╛ рддрд╛рдЬрд╝реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рд╕рд░рд▓рддрдо рдкреНрд░рдХрд╛рд░ рдХрд╛ рдореЙрдбреНрдпреВрд▓ / рдирд╛рдорд╛рдВрдХрд┐рдд рдкреИрдЯрд░реНрди рдЙрдкрдпреБрдХреНрдд рд╣реИред рдпрджрд┐ рдкреБрд░рд╛рдиреЗ iOS рдбрд┐рд╡рд╛рдЗрд╕ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╕рдлрд╛рд░реА 10.1 рдлрд┐рдХреНрд╕ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдВред

    iOS-. <!-- polyfill `nomodule` in Safari 10.1: --> <script type="module"> !function(e,t,n){!("noModule"in(t=e.createElement("script")))&&"onbeforeload"in t&&(n=!1,e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove())}(document) </script> <!-- 90+% of browsers: --> <script src="modern.js" type="module'></script> <!-- IE, Edge <16, Safari <10.1, old desktop: --> <script src="legacy.js" nomodule async defer></script> 

рд╡рд┐рдзрд┐ рдЪрд╛рд░: рдкреИрдХреЗрдЬ рд╢рд░реНрддреЗрдВ рд▓рд╛рдЧреВ рдХрд░реЗрдВ


рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ nomodule рдХреЛ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ nomodule рдЬреЛ рдХрд┐ рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ, рдЬреИрд╕реЗ рдХрд┐ nomodule рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╕рдлрд╛рд░реА 10.1 рдореЗрдВ), рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкреНрд░рднрд╛рд╡ "рдкреБрди: рдкреЙрд▓реАрдлрд┐рд▓рд┐рдВрдЧ" рддрдХ рд╕реАрдорд┐рдд рд╣реЛрдЧрд╛ред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЖрдЬ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рдмрд▓ рд╣реИ, рдпрд╣ рдПрдХ рдпреЛрдЧреНрдп рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

 <!-- newer browsers will not load this bundle: --> <script nomodule src="polyfills.js"></script> <!-- all browsers load this one: --> <script src="/bundle.js"></script> 

рдЖрдк рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЗ рд╕рд╛рде рдХреЛрдгреАрдп рд╕реАрдПрд▓рдЖрдИ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдорд┐рдВрдХреЛ рдЧрд╛рдЪреЗрд╡ рдиреЗ рдХрд┐рдпрд╛ рдерд╛ ред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЖрдк рдкреНрд░реА-рдХреНрд▓рд┐рдВрдЯ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреЙрд▓реАрдлрд┐рд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдкреАрдЖрд░ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдФрд░ рдпрджрд┐ рдЖрдк WebPack рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ html-webpack-plugin рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ html-webpack-plugin , рдЬреЛ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ рдореЗрдВ рдирд╛рдордорд╛рддреНрд░ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рддреЛ рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ?


рдЙрддреНрддрд░ рдЖрдкрдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЗ HTML рдореЗрдВ <sript> рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдпрджрд┐ рдЖрдк рдПрдХ рд╕рд╛рдЗрдЯ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣реИ, рдФрд░ рдЖрдк рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЦрд░реНрдЪ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддреА рд╣реИред

рдпрджрд┐ рдЖрдк рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реА-рд▓реЛрдб рд╕реНрдХреИрдирд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рддреАрд╕рд░реЗ рдпрд╛ рдЪреМрдереЗ рддрд░реАрдХреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдЪреБрдиреЗрдВ рдХрд┐ рдЖрдкрдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХреНрдпрд╛ рд╣реИред

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

рдХреНрдпрд╛ рдкрдврд╝рдирд╛ рд╣реИ?


рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЖрдк рдпрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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


All Articles