рдПрдХ рд╕рд╛рдЗрдЯ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдореБрдЭреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдбрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ 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.