рд╣реЗрд▓реЛ,
рд╣реЗрдмреНрд░ !
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдиреЗ рдореБрдЭреЗ рдЖрдХрд╛рд░ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдФрд░ рдЫреЛрдЯреЗ рд╕рдВрд╕рд╛рдзрди рд▓реЛрдбрд░ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореЗрд░реА рд╕рднреА рдЦреЛрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬреЗрдПрд╕, рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореБрдЭреЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ (рдпрд╣ рдПрдХ рдЕрд▓рдЧ
рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рд╣реИ)ред
рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрдкрдиреА
рдмрд╛рдЗрдХ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдирддреАрдЬрддрди, рдПрдХ рдШрдЯрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдХрд┐
uglify рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ 6.28 Kb рдФрд░ GZip рдореЗрдВ 1.3 Kb рддрдХ рд▓реЗрддрд╛ рд╣реИред
рдЙрдирдХреА рдХреБрдВрдЬреА "рдЪрд┐рдкреНрд╕":
- рдпрд╣ * .js рдФрд░ * .css рджреЛрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред
- рдПрдХ рдмреИрдЪ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- рдбрд╛рдЙрдирд▓реЛрдбрд┐рдВрдЧ рдмреИрдЪреЛрдВ рдореЗрдВ рд╣реЛрддреА рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рдкреИрдХреЗрдЬ рдкрд░ рд▓реЛрдб () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдФрд░ рдпрд╣ рдЙрди рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░реЗрдЧрд╛ рдЬреЛ рдЗрд╕рдореЗрдВ рд╣реИрдВред
- рдпрд╣ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рдФрд░ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдкреВрд░реЗ рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдПрдХ рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
- рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рд╣реИ рдЬреЛ рдмреБрдирд┐рдпрд╛рджреА рдкреИрдХреЗрдЬ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН: рднрдВрдбрд╛рд░рдг, рдирд┐рд░реНрдорд╛рдг, рд╡рд┐рд▓реЛрдкрди, рд▓реЛрдбрд┐рдВрдЧред
- рдиреЗрдорд╕реНрдкреЗрд╕ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ рдФрд░ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдкреНрд▓рд╕ рд╣реИ)ред
рдпрд╣рд╛рдБ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рд╣реИред
рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рддрд╣рдд рдПрдЬреЗрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдХреЛрд░реНрд╕ рдФрд░ рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╡рд┐рд╡рд░рдгред
AJL рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВрдПрдЬреЗрдПрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдбреЗрдЯрд╛-рдПрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ (AJL рдХреЛ рдЖрдзрд╛рд░ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП):
AJL рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ EntryPoint.js рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд╕рдВрдХреБрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред
рдЖрдк рдбреЗрдЯрд╛-рдЕрд╡рдзрд┐ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдПрдЬреЗрдПрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╣рд╛рдВ рд╣реИредEntryPoint.js рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИредрд╣рдо рдкреИрдХреЗрдЬ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВрдЖрдЗрдП jQuery, рдЙрд╕рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбреЗрдЯрд╛-рдПрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рдмрд╣реБрдд рд╕рд╛рдл рджрд┐рдЦрддрд╛ рд╣реИред рдирд╛рдо рдореЗрдВ, рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдореЗрдВ , рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ URL рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреАред
рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ , рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдЫрд╣ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- async (рдмреВрд▓) - рдХреНрдпрд╛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рд╣реИ
- рдЖрд▓рд╕реА (рдмреВрд▓) - рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЦрд┐рдбрд╝рдХреА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ
- dependence (рд╕рд░рдгреА) - рдирд┐рд░реНрднрд░рддрд╛рдПрдБ
- scriptTypeAttr (string) - рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд░ = "" рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ
- linkCssTypeAttr (рд╕реНрдЯреНрд░рд┐рдВрдЧ) - рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд▓рд┐рдВрдХ = ""
- linkCssRelAttr (рд╕реНрдЯреНрд░рд┐рдВрдЧ) - рд▓рд┐рдВрдХ rel рдореЗрдВ "="
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рдЕрднреА рднреА рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдореИрдВрдиреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдХреНрдпреЛрдВ рдирд┐рдХрд╛рд▓рд╛редEntryPoint.js рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?1. рддреАрди рдкреИрдХреЗрдЬ jQuery рдХреЗ рдирд╛рдо, jQuery рдкреНрд▓рдЧрдЗрдиреНрд╕, рдореЗрд░реЗ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, AJL рдПрдХ PackageManager рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд▓реЛрдбрдЕрд▓ () рд╡рд┐рдзрд┐ рдореМрдЬреВрдж рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдкреИрдХреЗрдЬ рд▓реЛрдб рдХрд░рддреА рд╣реИред рд╕рднреА рдкреИрдХреЗрдЬ рд╕рд░рдгреА рдФрд░ рдХреЙрд▓рд┐рдВрдЧ рд▓реЛрдб () рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдкрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВред рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдХ рдЬреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдбрд╛рдЙрдирд▓реЛрдб рдкреИрдХреЗрдЬ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХреНрд░рдо рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ "рдЧрдВрднреАрд░" рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╕рдм рдХреБрдЫред
2. jQuery рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдореЗрдВ рдирд╣реАрдВ рд╣реИред рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж jQuery рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ jQuery рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред рдФрд░ рдЕрдВрдд рдореЗрдВ - рдореЗрд░реЗ рд▓рд┐рдкрд┐рдпреЛрдВ - рдкреГрд╖реНрда рдкрд░ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (рдЖрд▓рд╕реА рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ)ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рд╕рдВрдХреБрд▓ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреГрд╖реНрда рд╣реИрдВред рдПрдХ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрдВрдбрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╢рд╛рдВрдд рд╕рдВрдкрд╛рджрдХ рд╣реИред рдЗрди рдкреЗрдЬреЛрдВ рдкрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕реНрдЯрд╛рдЗрд▓ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВред рдвреЗрд░ рд╕рд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯред рдЬреЛ рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЙрд╕реЗ рдПрдХ рдвреЗрд░ рдореЗрдВ рд▓реЛрдб рди рдХрд░реЗрдВред рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдзрд╛рд░ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рдПрдВ? рдХреНрдпреЛрдВ?
AJL рдХреЗ рд╕рд╛рде, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ:
AJL({ name: "jQuery", assets: ['js/vendor/jquery.min.js'], config: { async: false } }, { name: "jQuery Plugins", assets: ['js/vendor/jquery.plugin.js', 'js/vendor/jquery.plugin2.js'], config: { depend: ['jQuery'] } }, { name: "Editor Scripts And Styles", assets: ['js/editor/foo.js', 'js/editor/bar.js', 'css/editor/style.css'], config: { depend: ['jQuery Plugins'] } }, { name: "My Dashboard Scripts", assets: ['js/foo.js', 'js/bar.js'], config: { lazy: true } });
рд▓реЛрдбрдПрдб () рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рд╡рд╣ рдпрд╣рд╛рдВ рдирд╣реАрдВ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдо рдкреИрдХреЗрдЬреЛрдВ рдХреА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд▓реЛрдбрдПрдб () рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╕рд┐рд░реНрдл рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдВрдкрд╛рджрдХ рдФрд░ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдкреИрдирд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдкреИрдХреЗрдЬ рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрдкрд╛рджрдХ рд▓рд┐рдкрд┐рдпреЛрдВ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдирд╛рдордХ рдкреИрдХреЗрдЬ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдБрдХрд┐ рдпрд╣рд╛рдБ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдкреБрдирд░рд╛рд╡рд░реНрддреА рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдХрдбрд╝реА рдФрд░ рдЗрд╕реЗ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдмрджрд▓реЗ рдореЗрдВ, jQuery рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓реЛрдб рдХрд░реЗрдЧрд╛, рдФрд░ рдлрд┐рд░ jQueryред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рд╕рдВрдХреБрд▓ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред
"рд╣реБрдб" рдХреЗ рддрд╣рдд рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?рдЕрдм рдЖрдЗрдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ AJL рдореЙрдбреНрдпреВрд▓ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЧрдПред
рдирд╛рдо рд╕реНрдерд╛рдирд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХреЛрдб рдХреА 17 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдирд╛рдо рд╕реНрдерд╛рди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ рдФрд░ рд╕рд╛рд░ рдирд╛рдорд╕реНрдерд╛рди рдХреЛ рд╕рд░рдгреА рдФрд░ рдЙрд╕рдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рддрддреНрд╡реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реИред рдЬрдм рд╣рдо рдЕрдВрддрд┐рдо рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕ рддрддреНрд╡ рдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдореИрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХреЛрдб рджреЗрддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдирд╛рдо рд╕реНрдерд╛рди рдмрдирд╛рддреЗ рд╕рдордп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
setNamespace: function (namespace, module) { var parts = namespace.split('.'), parent = window, partsLength, curPart, i;
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
AJL("Module.SubModule", function() { return "Hi, I'm Module.SubModule"; });
рдкреИрдХреЗрдЬ, PackageConfig, рд▓реЛрдбрд░рдкреИрдХреЗрдЬ рдФрд░ рдкреИрдХреЗрдЬ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк (рд╡рд░реНрдЧ, рдПрдХ рд╢рдмреНрдж рдореЗрдВ) рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВред рд╕рднреА рдЬреЛ рдореИрдВ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рд░рдЦрддрд╛ рд╣реВрдВ, рд╡рд╣ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рд╣реИ, URL рдХреА рдПрдХ рд╕рд░рдгреА, рдкреИрдХреЗрдЬ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдгред рдкреИрдХреЗрдЬ рдХрд╛ рд▓реЛрдб () рд╡рд┐рдзрд┐ рд╕реНрд╡рдпрдВ рд╕реНрдерд┐рд░ рдлрд╝рдВрдХреНрд╢рди рд▓реЛрдбрдкреИрдХ () рд▓реЛрдбрд░.рдЬреЗрдПрд╕ рд╕реЗ рдХреЙрд▓ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
load: function () { AJL.Loader.loadPackage.call(this); }
рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЦрд░рд╛рдм рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреИрдХреЗрдЬ рдЕрд▓рдЧ рд╣реИрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрд▓рдЧ рд╣реИрдВ, рдФрд░ рдмреВрдЯрд▓реЛрдбрд░ рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред Loader.js рдФрд░ loadPackage () рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рдХрдм DOM рдореЗрдВ рдЯреИрдЧ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдХрдм рдирд╣реАрдВред
loadPackage: function () { var helper = AJL.Helper, packageManager = AJL.PackageManager, pack = this, packageAssets = pack.getAssets(), packageConfig = pack.getConfig(), depend = packageConfig.getItem('depend');
рд╣рдо рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рд▓реЛрдбрд┐рдВрдЧ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рдЗрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд▓реЛрдб рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред
PackageManagerрдПрдЬреЗрдПрд▓ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдкреИрдХреЗрдЬ рдореИрдирдЬрд░ рднреА рд╣реИ, рдЬреЛ рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд▓реЗрдХреНрдЯрд░ред рдЧреЗрдЯрд░реНрд╕ рд╣реИрдВ, рдРрд╕реЗ рд╕реЗрдЯрд░реНрд╕ рд╣реИрдВ рдЬреЛ рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рд╕рд░рдгреА рдореЗрдВ рдЕрдиреБрд░реЛрдзрд┐рдд рдирд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдпрд╣ рднреА рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдпрд╛ рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдирд╛ рдЧрдпрд╛ рд▓реЛрдбрдСрд▓ () рдлрд╝рдВрдХреНрд╢рди рд╕рд╛рдорд╛рдиреНрдп рдЧрдгрдирд╛ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
loadAll: function () { var helper = AJL.Helper, curPack; for (var pack in packages) { if (packages.hasOwnProperty(pack)) { curPack = packages[pack]; if (helper.isInstanceOf(curPack, AJL.Package)) { curPack.load(); } } } return this; },
рд╕рд░рдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Iterates, рдФрд░ рдпрджрд┐ рдпрд╣ рдПрдХ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкреИрдХреЗрдЬ рд╣реИ, рддреЛ рдХреЙрд▓ рд▓реЛрдб () рдХрд░реЗрдВред рдЖрд╢реНрд░рд┐рдд рдкреИрдХреЗрдЬ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдореИрдВ loadByNames () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
loadByNames: function (names) { var helper = AJL.Helper, curName, namesLength, i; namesLength = names.length; for (i = 0; i < namesLength; i++) { curName = names[i]; if (packages.hasOwnProperty(curName) && helper.isInstanceOf(packages[curName], AJL.Package)) { packages[curName].load(); } } return this; }
рд╣рдо рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рд╕рд░рдгреА рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕реНрдЯреЛрд░реЗрдЬ рдкреИрдХреЗрдЬ рдореЗрдВ рдХреЛрдИ рдирд╛рдо рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рд╣рд╛рдБ, рдФрд░ рдпрд╣ рдПрдХ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкреИрдХреЗрдЬ рд╣реИ, рддреЛ рдХреЙрд▓ рд▓реЛрдб () рдХрд░реЗрдВред
AJLрдФрд░ рдЕрдВрдд рдореЗрдВ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рддред AJL () рдлрд╝рдВрдХреНрд╢рдиред
AJL = function () { var packageManager = AJL.PackageManager, namespace = AJL.Namespace, helper = AJL.Helper, packageInstance = {}, packageName = '', packageAssets = [], packageConfig = {}, argLength = arguments.length, argFirst, argSecond, i;
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рджрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЦреЗрдВред рдпрджрд┐ рдХреБрдЫ рднреА рдкреНрд░реЗрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рддреБрд░рдВрдд рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рд╡реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реЗ рдЧреБрдЬрд╝рд░реЗ, рддреЛ рд╣рдо рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рдореЗрдВ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдФрд░ рдЙрд╕рдХреА рддрд▓рд╛рд╢ рдХреАред рдЦреЛрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рдкреИрдХреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдХрд░реЗрдВред рдпрджрд┐ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рддреЛ рд╣рдо рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЗрд╕ рдирд╛рдо рд╕реНрдерд╛рди (рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ) рдореЗрдВ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдЧрд░ рдХреЛрдИ рдирд╣реАрдВ рдЖрдпрд╛, рддреЛ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ AJL рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рднреА рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдВред
рдореИрдВ рдЙрди рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрддрд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдЬрдЧрд╣ рдкрд░ рдкрдврд╝рдиреЗ рдХреА рддрд╛рдХрдд рдкрд╛рдИред рдпрджрд┐ рдЖрдк рдПрдЬреЗрдПрд▓ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ:
рдореБрдЦреНрдп рдкреГрд╖реНрдардЧрд┐рдЯрд╣рдм рд╕реНрд░реЛрддрдкреНрд░рд▓реЗрдЦрдирдкреАрдПрд╕ рдореИрдВ рд╕рднреА рдЗрдЪреНрдЫрд╛рдУрдВ рдФрд░ рдЖрд▓реЛрдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред рдореИрдВ рд╡рд┐рдХрд╛рд╕ рдЫреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реВрдВред рдмрд╕ рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рднрд╛рдЧ рдЧрдпрд╛ :)