рдПрдХ рдФрд░ рдПрдХ? рдХреНрдпреЛрдВ? рдХреНрдпрд╛ рдХреЙрдордирдЬрд╕ рдФрд░ рдПрдПрдордбреА рд╣реИ? рдкреАрдбрд╝рд┐рдд рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдЗрд╕рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдореЙрдбреНрдпреВрд▓рд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд╣реИред
azproduction рд╕реЗ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ рдкрде , рд╣рдо рд╕реАрдзреЗ рдореБрдЦреНрдп
рдмрд┐рдВрджреБ рдкрд░ рдЬрд╛рдПрдВрдЧреЗ: рдПрдХ рдФрд░ рдореЙрдбреНрдпреВрд▓рд░ рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреЛрдВ? рдЖрдЦрд┐рд░рдХрд╛рд░, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЙрдордирдЬрд╕ рдФрд░ рдПрдПрдордбреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдЙрди рджреЛрдиреЛрдВ рдореЗрдВ рдПрдХ рдЦрд╛рдореА рд╣реИ, рдЬреЛ рдореИрдВ рдЬрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реВрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдХреЗ рд▓рд┐рдП рдЕрдЧрд░ рдШрд╛рддрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рд╡реЗ рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕рдордХрд╛рд▓рд┐рдХ рд╣реИрдВред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдХреНрд╕рд░ рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдереАрдВ рдЬрдм рдЗрд╕ рдХрдореА рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрд╕рд╛рдЦреА рдХреЗ рд╕рд╛рде рдЖрдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореЙрдбреНрдпреВрд▓
рдореЙрдбреНрдпреВрд▓рдП ,
рдореЙрдбреНрдпреВрд▓рдмреА ,
рдореЙрдбреНрдпреВрд▓рд╕реА рд╣реИ , рдФрд░ рдмрд╛рдж рд╡рд╛рд▓рд╛ рджреЛ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрди рд╕рднреА рдореЙрдбреНрдпреВрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдХреЛрдб рд▓рд┐рдЦреЗрдВрдЧреЗ: рдХреЙрдордирдЬрд╕, рдПрдПрдордбреА, рд╡рд╛рдИрдПрдоред
CommonJS
moduleA.js:module.exports = 'A';
moduleB.js: module.exports = 'B';
moduleC.js: var moduleA = require('A'), moduleB = require('B'); module.exports = moduleA + moduleB + 'C';
рдХрдиреЗрдХреНрд╢рди рдФрд░ рдЙрдкрдпреЛрдЧ:
var moduleC = require('C'); console.log(moduleC);
рдПрдПрдордбреА
moduleA.js: define('A', function() { return 'A'; });
moduleB.js: define('B', function() { return 'B'; });
moduleC.js: define('', ['A', 'B'], function(moduleA, moduleB) { return moduleA + moduleB + 'C'; });
рдХрдиреЗрдХреНрд╢рди рдФрд░ рдЙрдкрдпреЛрдЧ:
require([''], function(moduleC) { console.log(moduleC);
YM
moduleA.js: modules.define('A', function(provide) { provide('A'); });
moduleB.js: modules.define('B', function(provide) { provide('B'); });
moduleC.js: modules.define('C', ['A', 'B'], function(provide, moduleA, moduleB) { provide(moduleA + moduleB + 'C'); });
рдХрдиреЗрдХреНрд╢рди рдФрд░ рдЙрдкрдпреЛрдЧ:
modules.require([''], function(moduleC) { console.log(moduleC);
рдЕрдм рддрдХ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред рддреАрдиреЛрдВ рдЙрджрд╛рд╣рд░рдг рдмрд░рд╛рдмрд░ рд╣реИрдВред рдЕрдм, рд╡рд╛рдИрдПрдо рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рд╡рд┐рд╡рд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд
рдкреНрд░рджрд╛рди рдлрд╝рдВрдХреНрд╢рди рдореЙрдбреНрдпреВрд▓ рдШреЛрд╖рдгрд╛ рдХреЗ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдореЙрдбреНрдпреВрд▓
рдореЙрдбреНрдпреВрд▓рдП рдФрд░
рдореЙрдбреНрдпреВрд▓рдмреА рддреБрд░рдВрдд, рд╕рдорд╛рди рд░реВрдк рд╕реЗ (рдХреЙрдордирдЬрд╕ рдФрд░ рдПрдПрдордбреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ) рдХреЛ рддреЛрдбрд╝ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ
setTimeout
рд╣реЛрдиреЗ рджреЗрдВред рд╡рд╛рдИрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд┐рд╕реЗ рдХреЙрдордирдЬрд╕ рдпрд╛ рдПрдПрдордбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдореЗрдВ рд╢реАрд░реНрд╖рдХ рдореЗрдВ
рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╢рдмреНрдж рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдШреЛрд╖рдгрд╛ рдкрджреНрдзрддрд┐ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ):
moduleA.js: modules.define('A', function(provide) { setTimeout(function() { provide('A'); }); });
moduleB.js: modules.define('B', function(provide) { setTimeout(function() { provide('B'); }); });
moduleC.js: modules.define('C', ['A', 'B'], function(provide, moduleA, moduleB) { provide(moduleA + moduleB + 'C'); });
рдЙрд╕реА рд╕рдордп, рд╣рдо рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
рдореЙрдбреНрдпреВрд▓рд╕реА рдЦреБрдж рдХреЛ
рдореЙрдбреНрдпреВрд▓рдП рдФрд░
рдореЙрдбреНрдпреВрд▓рдмреА рдХреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреГрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рд▓рд╛рднред
рдЬреАрд╡рди рдЙрджрд╛рд╣рд░рдг
рд╣рдо рдПрдХ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реЗ рдЧреБрдЬрд░реЗрдВрдЧреЗред рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рд╣рдо Yandex.Maps API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЕрдВрджрд░ рдпрд╣ рдмрд╣реБ-рдЪрд░рдг рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд▓рдЧрднрдЧ рдпрд╣ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рд▓рд┐рдЦрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдФрд░ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рдмрд╛рдж рдХреА рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд╛рдкреНрдд рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреАред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
ymaps.ready
рдШрдЯрдирд╛ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рд╣рдо рдПрдкреАрдЖрдИ рд╕реЗ рдЖрдзрд╛рд░ рд╡рд░реНрдЧреЛрдВ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╣рдорд╛рд░реА рдЕрдкрдиреА рдЬрдЯрд┐рд▓ рд▓реЗрдпрд░ рд▓реЗрдпрд░ рдХреНрд▓рд╛рд╕ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо ymaps:
ymaps.Layer
рд╕реЗ рдмреЗрд╕ рд▓реЗрдпрд░ рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╡рд╛рдИрдПрдо рдХреЗ рд╕рд╛рде, рдпрд╣ рдмрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╣рдо ymaps рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдкреА рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╡рд╛рдВрдЫрд┐рдд рдШрдЯрдирд╛ (ymaps.ready) рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЦреБрдж рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдореЙрдбреНрдпреВрд▓, рдЬреЛ рдПрдкреАрдЖрдИ рдореЙрдбреНрдпреВрд▓ (ymaps) рдкрд░ рдирд┐рд░реНрднрд░ рдереЗ, рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓, рдлрд┐рд░ рд╕реЗ, Yandex.Maps API рдХреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреГрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдХреЛрдб рдореЗрдВ рдХреЛрдИ рдмреИрд╕рд╛рдЦреА рдирд╣реАрдВ!
ymaps.js:
modules.define( 'ymaps', ['loader', 'config'], function(provide, loader, config) { loader(config.hosts.ymaps + '/2.1.4/?lang=ru-RU&load=package.full&coordorder=longlat', function() { ymaps.ready(function() { provide(ymaps); }); }); });
рд▓реЛрдбрд░ рдФрд░
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдХреЛрдб рдпрд╣рд╛рдВ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдкрд╣рд▓рд╛ рдПрдХ рдпреВрдЖрд░рдПрд▓ рджреНрд╡рд╛рд░рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдХреЗрд╡рд▓ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдПрдХ рд╣реИрд╢ рд╣реИред
ComplexLayer.js:
modules.define('ComplexLayer', ['inherit', 'ymaps'], function(provide, inherit, ymaps) { var ComplexLayer = inherit(ymaps.Layer, ...); provide(ComplexLayer); });
рд╣рдо рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдо, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, jQuery рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
Jquery рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
modules.define( 'jquery', ['loader', function(provide, loader) { loader('//yandex.st/jquery/2.1.0/jquery.min.js', function() { provide(jQuery.noConflict(true)); }); });
рдФрд░ рд╣рдо рдЕрдиреНрдп рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдореЗрдВ
jquery рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкреВрд░рд╛ рдХреЛрдб рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдХреЛрдИ рд╡реИрд╢реНрд╡рд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдп рд▓рд┐рдкрд┐рдпреЛрдВ (рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд▓реЛрдЧреЛрдВ рд╕рд╣рд┐рдд) рдпрд╛ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдХреЛрдИ рд╕рдордЭреМрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдмреИрд╕рд╛рдЦреА рдирд╣реАрдВ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рд╣рдорд╛рд░реЗ рд╡рд╛рдИрдПрдо рдореЙрдбреНрдпреВрд▓рд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рдПрдкреАрдЖрдИ рд▓рд╛рддрд╛ рд╣реВрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрдИ рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ, рдХреЗрд╡рд▓ рдореБрдЦреНрдп рдпрд╣рд╛рдВ рд╣реИрдВ):
рдореЙрдбреНрдпреВрд▓ рдХреА рдШреЛрд╖рдгрд╛
void modules.define( String moduleName, [String[] dependencies], Function( Function(Object objectToProvide) provide, [Object resolvedDependency, ...], [Object previousDeclaration] ) declarationFunction )
рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрд╢рди
void modules.require( String[] dependencies, Function( [Object resolvedDependency, ...] ) callbackFunction )
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА:
github.com/ymaps/modules