рд╣рд░ рджрд┐рди, рд╕рд╛рдЗрдЯреЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд╣реЛрддреА рдЬрд╛ рд░рд╣реА рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ "рдкреБрдирд░реНрдЬреАрд╡рд┐рдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ - рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЖрдкрдХреЛ рдПрдХ рдкреВрд░реНрдг-рдкреГрд╖реНрда рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдПрдХ рдЖрдХрд░реНрд╖рдХ рдЙрджрд╛рд╣рд░рдг рдХрд┐рд╕реА рднреА рд╡реЗрдм-рдореЗрд▓ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
Mail.Ru ) рд╣реИ, рдЬрд╣рд╛рдВ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдкреГрд╖реНрда рдкреБрдирдГ рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд░реВрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп, рдЬреЛ рд╣рдореЗрд╢рд╛ рд╕рд░реНрд╡рд░ рдХрд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд░рд╣рд╛ рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдирд┐рд╣рд┐рдд рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдЧреЗ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдмреИрдХ-рдПрдВрдб рдкрд░ рд╡реЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рднрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рд░реВрдЯрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ?
рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╡реЗрджрди рдХрд╛ рд╕рдмрд╕реЗ рдХрдо рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ:]
рд╕рд░реНрд╡рд░ рдкрд░, рд░реВрдЯрд┐рдВрдЧ рдЕрдиреБрд░реЛрдз рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрд╡реЗрджрди рдХреЗ рднреАрддрд░ рдорд╛рд░реНрдЧ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдпрд╣ рдЕрдиреБрд░реЛрдзрд┐рдд URL рдкрд░ рдирд┐рдпрдВрддреНрд░рдХ рдвреВрдВрдв рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрдЪрд┐рдд рдХрд╛рд░реНрдп рдХрд░ рд░рд╣рд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдЖрдкрдХреЛ рдПрдХ-рдкреЗрдЬ рдЧреИрд▓рд░реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рддреАрди рд╕реНрдХреНрд░реАрди рд╣реЛрдВрдЧреЗ:
- рдШрд░ - рдкреЗрдВрдЯрд┐рдВрдЧ рдореЗрдВ рджрд┐рд╢рд╛ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк
- рдЧреИрд▓рд░реА рджреЗрдЦреЗрдВ - рдкреГрд╖реНрдард╛рдВрдХрди рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ рдкреГрд╖реНрда рдкрд░ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
- рдЪрдпрдирд┐рдд рдХрд╛рд░реНрдп рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рджреГрд╢реНрдп
рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ, рдЖрд╡реЗрджрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
<div id="app"> <div id="app-index" style="display: none">...</div> <div id="app-gallery" style="display: none">...</div> <div id="app-artwork" style="display: none">...</div> </div>
рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреНрд░реАрди рдХрд╛ рдЕрдкрдирд╛ URL рд╣реЛрдЧрд╛, рдФрд░ рд░рд╛рдЙрдЯрд░ рдЬреЛ рдЙрдирдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
var Router = { routes: { "/": "indexPage", "/gallery/:tag/": "galleryPage", "/gallery/:tag/:perPage/": "galleryPage", "/gallery/:tag/:perPage/page/:page/": "galleryPage", "/artwork/:id/": "artworkPage", } };
рд░реВрдЯ рдХреЛ рд╕реАрдзреЗ 'рдорд╛рд░реНрдЧреЛрдВ' рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХреБрдВрдЬреА рдкрде рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ, рдФрд░ рдореВрд▓реНрдп рдирд┐рдпрдВрддреНрд░рдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ 'Router.routes' рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдорд┐рдд рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, `Router.init` рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
var Router = { routes: { }, init: function (){ this._routes = []; for( var route in this.routes ){ var methodName = this.routes[route]; this._routes.push({ pattern: new RegExp('^'+route.replace(/:\w+/, '(\\w+)')+'$'), callback: this[methodName] }); } } };
рдпрд╣ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдЬреЛ рдорд╛рд░реНрдЧ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛:
var Router = { routes: { }, init: function (){ }, nav: function (path){ var i = this._routes.length; while( i-- ){ var args = path.match(this._routes[i].pattern); if( args ){ this._routes[i].callback.apply(this, args.slice(1)); } } } };
рдЬрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд░рд╛рдЙрдЯрд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рд╕реЗрдЯ рдХрд░реЗрдВред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╕рднреА рд▓рд┐рдВрдХ рд╕реЗ `рдХреНрд▓рд┐рдХ` рдЗрд╡реЗрдВрдЯ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ рдФрд░ рд░рд╛рдЙрдЯрд░ рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдВред
Router.init(); Router.nav("/");
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ; рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕рднреА рдЕрдВрддрд░ рдорд╛рд░реНрдЧ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдкреНрд░рд╛рд░реВрдк рдФрд░ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдЗрд╕рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддреЗ рд╣реИрдВред
рдЖрдЗрдП рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдЗрд╕рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЧрд╛рдпрдм рд╣реИ рдЬреЛ рдорд╛рд░реНрдЧ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдЖрдорддреМрд░ рдкрд░ рд╡реЗ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ:
var Router = { routes: { }, init: function (){ }, nav: function (url){ }, indexPage: function (){ ManagerView.set("index"); }, galleryPage: function (tag, perPage, page){ var query = { tag: tag, page: page, perPage: perPage }; api.find(query, function (items){ ManagerView.set("gallery", items); }); }, artworkPage: function (id){ api.findById(id, function (item){ ManagerView.set("artwork", item); }); } };
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдбреЗрдЯрд╛ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдЬрд▓реНрджреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд╛рдлреА рд╡рд╣реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЧреИрд▓рд░реА рдХреЗ рджреВрд╕рд░реЗ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рд╡рд╣ рдкрд╣рд▓реЗ рдкреГрд╖реНрда рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд▓рдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рджреЛ рдЕрдиреБрд░реЛрдз рдмрдЪреЗ рд╣реИрдВред рд╡реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреНрд░рдо рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЪрд┐рддреНрд░ рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЧреИрд▓рд░реА рдХрд╛ рджреВрд╕рд░рд╛ рдкреГрд╖реНрда рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рд╣рд░ рдХреЛрдИ рдЕрдкрдирд╛ рд░рд╛рд╕реНрддрд╛ рдЦреБрдж рдЪреБрдирддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрд┐рдЫрд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП `abort` рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рддрд░реНрдХ рдХреЛ` ManagerView.set` рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
`ManagerView` рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ? `рд╕реЗрдЯ (рдирд╛рдо, рдбреЗрдЯрд╛)` рд╡рд┐рдзрд┐ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓реЗрддреА рд╣реИ: рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП "рд╕реНрдХреНрд░реАрди" рдФрд░ "рдбреЗрдЯрд╛" рдХрд╛ рдирд╛рдоред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд╛рд░реНрдп рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдФрд░ `рд╕реЗрдЯ` рд╡рд┐рдзрд┐ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдВрдЫрд┐рдд рддрддреНрд╡ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ `тАЭ рдРрдк - тАЭ+ рдирд╛рдо`, рдФрд░ HTML рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, `ManagerView` рдХреЛ рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░реАрди рдХрд╛ рдирд╛рдо рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рд╢реБрд░реВ рд╣реБрдЖ / рдмрджрд▓ рдЧрдпрд╛ / рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред
рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ `рд░рд╛рдЙрдЯрд░` рдФрд░` рдореЗрдиреЗрдЬрд░ рд╡реНрдпреВ` рдХреЗ рд╕рд╛рде рдПрдХ-рдкреЗрдЬ рдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛, рд▓реЗрдХрд┐рди рд╕рдордп рдмреАрдд рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд▓реЗрдЦ" рдЕрдиреБрднрд╛рдЧ, рдЬрд╣рд╛рдВ "рдХрд╛рд░реНрдпреЛрдВ" рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рд╡рд░реНрдгрди рд╣реЛрдЧрд╛ред "рдХрд╛рдо" рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓рд┐рдВрдХ "рд▓реЗрдЦ рдкрд░ рд╡рд╛рдкрд╕" рдпрд╛ "рдЧреИрд▓рд░реА рдкрд░ рд╡рд╛рдкрд╕" рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ? рди рддреЛ 'ManagerView` рдФрд░ рди рд╣реА' Router 'рдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдбреЗрдЯрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдмрдирд╛ рд░рд╣рд╛ - рдпреЗ рд▓рд┐рдВрдХ рд╣реИрдВред рдкреГрд╖реНрда рдиреЗрд╡рд┐рдЧреЗрд╢рди, рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдЖрджрд┐, рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ "рдмрд┐рд▓реНрдб" рдХрд░реЗрдВ? рд╕реАрдзреЗ рдХреЛрдб рдореЗрдВ "рд╕реАрдирд╛"? рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдБ рдЬреЛ URL рдХреЛ mnemonics рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдПрдЧрд╛? рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреБрд░рд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдорд╛рд░реНрдЧ рдЖрдИрдбреА рдФрд░ рдПрдХ рд╡рд┐рдзрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЖрдИрдбреА рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ URL рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ URL рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рдФрд░ рдирд┐рдпрдо рдПрдХ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдХрд╛рд░рдг URL рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХрд╛ рджреЛрд╣рд░рд╛рд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдРрд╕рд╛ рд░рд╛рдЙрдЯрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЦреЛрдЬ рдЗрдВрдЬрди рдореЗрдВ рдЧрдпрд╛, рдЖрджрд░реНрд╢ (рдореЗрд░реА рд╕рдордЭ рдореЗрдВ) рд░рд╛рдЙрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рд╕рдВрдХрд▓рд┐рдд:
- рд╕рдмрд╕реЗ рд▓рдЪреАрд▓рд╛ рдорд╛рд░реНрдЧ рд╡рд┐рд╡рд░рдг рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреА рддрд░рд╣)
- рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ, рдФрд░ рди рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ)
- рдорд╛рд░реНрдЧ рдХреА "рд╢реБрд░реБрдЖрдд", "рдкрд░рд┐рд╡рд░реНрддрди" рдФрд░ "рдЕрдВрдд" рдХреА рдШрдЯрдирд╛рдУрдВ (/ рдЧреИрд▓рд░реА / рдХреНрдпреВрдмрд┐рдЬрд╝реНрдо / -> / рдЧреИрд▓рд░реА / рдХреНрдпреВрдмрд┐рдЬрд╝реНрдо / 12 / рдкреГрд╖реНрда / 2 -> / рдХрд▓рд╛рдХреГрддрд┐ / 123 /)
- рдПрдХ рдорд╛рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдХрдИ рд╣реИрдВрдбрд▓рд░ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
- рд░реВрдЯ рдЖрдИрдбреА рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдФрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
- рдмрд╛рддрдЪреАрдд рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ `рдбреЗрдЯрд╛ view тЖТ рд╡реНрдпреВ` (рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ)
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд╡рд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдмрд╣реБрдд рдпреЛрдЧреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛, рдЬреИрд╕реЗ:
- рдЪреМрд░рд╛рд╣реЗ.рдЬреЗрдПрд╕ - рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХрд╛рдо
- Path.js - рдорд╛рд░реНрдЧ рдХреЗ "рд╢реБрд░реБрдЖрдд" рдФрд░ "рдЕрдВрдд" рдХреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, 1KB (рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ + gzipped)
- Router.js - рд╕рд░рд▓ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ, рдХреЗрд╡рд▓ 443 рдмрд╛рдЗрдЯреНрд╕ (рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ + gzipped)
рдкрд╛рдпрд▓рдЯ
рдФрд░ рдЕрдм рдпрд╣ рд╡рд╣реА рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рдпрд▓рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдореЗрдВ рддреАрди рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ:
- рдкрд╛рдпрд▓рдЯ - рд░рд╛рдЙрдЯрд░ рд╣реА
- рдкрд╛рдпрд▓рдЯ.рдЖрдЙрдЯ - рд░реВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░
- Pilot.View - рдЙрдиреНрдирдд рдорд╛рд░реНрдЧ рдирд┐рдпрдВрддреНрд░рдХ, рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддрд╛ рд╣реИред рдкрд╛рдпрд▓рдЯ
рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред рдЖрд╡реЗрджрди рдХреА HTML рд╕рдВрд░рдЪрдирд╛ рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди рд╣реИред
рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рд╕реНрдХреНрд░реАрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореИрдВ рдкрд╛рдпрд▓рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рджреГрд╢реНрдпред DOM рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреА рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реБрдЖрдд рдореЗрдВ рд░реВрдЯрд╕реНрдЯрд╛рд░реНрдЯ рдФрд░ рд░реВрдЯреЗрдВрдб рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрди рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, Pilot.View рд╕рдВрдмрдВрдзрд┐рдд DOM рддрддреНрд╡ рдХреЛ 'рдбрд┐рд╕реНрдкреНрд▓реЗ: рдХреЛрдИ рдирд╣реАрдВ' рдпрд╛ рдЗрд╕реЗ рд╣рдЯрд╛рдХрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдиреЛрдб рдХреЛ 'рдПрд▓' рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред
рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИрдВ: рд░реВрд╕реНрдЯрд╛рд░реНрдЯ, рд░реВрдирдЪреЗрдВрдЬ рдФрд░ рд░реВрдЯреЗрдВрдбред рдЙрдиреНрд╣реЗрдВ рд░рд╛рдЙрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдХрдВрдЯреНрд░реЛрд▓рд░ (рдУрдВ) рдХреЗ рдкрд╛рд╕ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рддреАрди рдорд╛рд░реНрдЧ рдФрд░ рдЙрдирдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рд╣реИрдВ:
"/" -- pages.index "/gallery/:page?" -- pages.gallery "/artwork/:id/" -- pages.artwork
рдкреНрд░рддреНрдпреЗрдХ рдорд╛рд░реНрдЧ рдореЗрдВ рдХрдИ URL рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдирдпрд╛ URL рд╡рд░реНрддрдорд╛рди рдорд╛рд░реНрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рд░рд╛рдЙрдЯрд░ рдПрдХ рд░реВрдЪреЗрдХ рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдорд╛рд░реНрдЧ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд░реВрдЯрдПрдВрдб рдШрдЯрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдирдП рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд░реВрдЯрд╕реНрдЯрд╛рд░реНрдЯ рдШрдЯрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИред
"/" -- pages.index.routestart "/gallery/" -- pages.index.routeend, pages.gallery.routestart "/gallery/2/" -- pages.gallery.routechange "/gallery/3/" -- pages.gallery.routechange "/artwork/123/" -- pages.artwork.routestart, pages.gallery.routeend
рдХрдВрдЯреЗрдирд░ рдХреА рджреГрд╢реНрдпрддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ (`this.el`), рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдкрдХреЛ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Pilot.View рдореЗрдВ рдирд┐рдореНрди рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд╛рд░реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдЯреЗрдореНрдкрд▓реЗрдЯ (рдбреЗрдЯрд╛) - рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рдзрд┐ рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рдПрдЪрдЯреАрдПрдордПрд▓ рдмрдирддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рд▓реЛрдбрдбреЗрдЯрд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
loadData (req) рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐ рд╣реИред рд╣рд░ рдмрд╛рд░ рдЬрдм URL рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдз рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк $ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЬрдм рддрдХ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдм рддрдХ рд░рд╛рдЙрдЯрд░ рдЗрд╕ URL рдкрд░ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред
рдЕрдиреБрд░реЛрдз - рдЕрдиреБрд░реЛрдз { url: "http://domain.ru/gallery/cubism/20/page/3", path: "/gallery/cubism/20/page/123", search: "", query: {}, params: { tag: "cubism", perPage: 20, page: 123 }, referrer: "http://domain.ru/gallery/cubism/20/page/2" }
onRoute (evt, req) - рд╕рд╣рд╛рдпрдХ рдШрдЯрдирд╛ред рд░реВрдЯреЗрд╕реНрдЯрд╛рд░реНрдЯ рдпрд╛ рд░реЗрдХрдЪреЗрдВрдЬ рдХреЗ рдмрд╛рдж рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдХрдВрдЯреЗрдирд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд░реЗрдВрдбрд░ () HTML рдХрдВрдЯреЗрдирд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ (`this.el`)ред рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ редemplate (this.getData ())ред
рдЕрдм рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рд░рд╛рдЙрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
var GuideRouter = Pilot.extend({ init: function (){
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдПрдХ рд░рд╛рдЙрдЯрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ `рдЗрдирд┐рдЯ` рд╡рд┐рдзрд┐ рдореЗрдВ рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдорд╛рд░реНрдЧ `рдорд╛рд░реНрдЧ` рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рддреАрди рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ: рдорд╛рд░реНрдЧ рдЖрдИрдбреА, рдкреИрдЯрд░реНрди рдФрд░ рдирд┐рдпрдВрддреНрд░рдХред
рдорд╛рд░реНрдЧ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕, рдореИрдВ рднрдВрдЧ рдирд╣реАрдВ рдХрд░реВрдБрдЧрд╛, рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╣ рд╕рднреА рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рдЬреЛ рд▓реЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ
рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рд╡реЗ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ - рд╕рдореВрд╣ рдХреЛ рдЬреЛрдбрд╝рд╛; рд╡реЗ рдЖрдкрдХреЛ рдорд╛рд░реНрдЧ рдХреЗ рдкреИрдЯрд░реНрди рдХреЛ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рдЧреИрд▓рд░реА рдорд╛рд░реНрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдХрд▓рд╛: рдорд╛рд░реНрдЧ рдФрд░ URL рдПрдХ рдФрд░ рд╕рдорд╛рди рд╣реИрдВред рдпрд╣ рдХреЛрдб рдореЗрдВ рд╕реНрдкрд╖реНрдЯ URL рдФрд░ рдЙрддреНрдкрдиреНрди URL рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реАрдХреЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдЪреНрдЫрд┐рдд рдорд╛рд░реНрдЧ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, Guide.go (id, params) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЕрдВрддрд┐рдо рдЪрд░рдг рд▓рд┐рдВрдХ рдЖрдИрдбреА рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрддрд┐рд╣рд╛рд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЧрд╛рдЗрдб рд░рд╛рдЙрдЯрд░ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкрд╛рдпрд▓рдЯ location.hash рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк history.pushState рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Pilot.pushState = true рд╕реЗрдЯ рдХрд░реЗрдВред рд▓реЗрдХрд┐рди, рдпрджрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ location.hash рдпрд╛ history.pushState рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрддрд┐рд╣рд╛рд╕ рдПрдкреАрдЖрдИ рдХреЗ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреЙрд▓реАрдлрд╝рд╛рдЗрд▓, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреБрдХреНрдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рджреМрд░рд╛рди, рдЖрдкрдХреЛ рджреЛ рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - Pilot.getLocation () рдФрд░ Pilot.setLocation (req)ред
рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓реЛрдВ, рдореБрджреНрджреЗ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ:]
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
-
рдЙрджрд╛рд╣рд░рдг (
app.js )
-
рдкреНрд░рд▓реЗрдЦрди-
рд╕реВрддреНрд░-
jquery.leaks.js (
jQuery.cache рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛)