рдПрдХ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдбрд░

рдПрдХ рд╕рд╛рдЗрдЯ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдореБрдЭреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдбрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ js рдХреЛрдб рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПред рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рд╕реЗ рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдФрд░ рдпрдЬреНрдЮреЛрдкрд╡реАрдд рдорд┐рд▓реЗ ред рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдореЙрдбреНрдпреВрд▓рд░ рд╣реИрдВ, рдЬреЛ рдореЗрд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рдереАрдВред рдпреЗрдкрдиреЛрдк рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рдХреЛ рд▓рдкреЗрдЯрдирд╛ рд╣реЛрдЧрд╛ред рдЦреБрдж рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдирд╣реАрдВ рдмрдЪрд╛ рдерд╛ред рдФрд░ рдпрд╣рд╛рдБ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛: wakeloader рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рд░рд╣рд┐рдд рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдбрд░ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред

рдкреНрд░рд╛рд░рдВрдн


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд HTML рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
<script wake-loader src="/loader.min.js"></script> 

рдорд╛рдкрджрдВрдбреЛрдВ


рд╡рдХрд╛рд▓рд╛рдУрджрд░ рдореЗрдВ рдХрдИ рдмреВрдЯ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдпрд╣рд╛рдВ рдЙрдирдХреА рдПрдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ:
 string main-file       (main.js) string main  ,     string update  ,      bool quick  true,   main     DOMContentLoaded, false - onload bool cached     object alias   array queue     

рдкреИрд░рд╛рдореАрдЯрд░ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

1. рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рдмрдирд╛рдХрд░


 <script> wakeloader = { mainFile : "/app/main", main : "main", update : "04.04.2013", quick : true, cached : true, alias : { "http://code.jquery.com/" : "jquery/" }, queue : ["/app/widget","jquery/jquery-2.0.2.min",{ "http://some.serv.er/lib/" : ["sugar","backbone"] }] }; </script> <script wake-loader src="/loader.min.js"></script> 

2. рд╡рд╛рдпрд╛ рд▓рд┐рдкрд┐ рдЯреИрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ


 <script wake-loader data-main-file="/app/main" data-main data-update="04.04.2013" data-cached data-quick data-alias='{ "http://code.jquery.com/" : "jquery/" }' src="/loader.min.js"> ["/app/widget","jquery/jquery-2.0.2.min",{ "http://some.serv.er/lib/" : ["sugar","backbone"] }] </script> 

рдХрддрд╛рд░ рдХреЛ data-queue рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХрд╛рд░реНрдпреЛрдВ


рд╡рд╛рдХреЗрд▓реИрдбрд░ рдХреЗ рдХреЗрд╡рд▓ рджреЛ рдХрд╛рд░реНрдп рд╣реИрдВ: рдпреЗ require рдФрд░ updateQueue ред

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА require , рдЬреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред
 require('jquery/jquery-1.10.1.min','/app/lastfm-api'); 

updateQueue рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкрд╣рд▓реА рдмрд╛рд░ рдкреГрд╖реНрда рддрд╛рдЬрд╝рд╛ рд╣реЛрдиреЗ рдкрд░, рдХрддрд╛рд░ рдХреИрд╢ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ wakeloader рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


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

: , , .



, cached
true , .



require localStorage , .


requirejs, .



( ). , wakeloader c - 700ms, requirejs - 800ms.

UPD: requirejs, shim:



.

GitHub. .
PS: php-cli , wakeloader'a github'e.

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


All Articles