рд╢реБрдн рджрд┐рди, рдкреНрд░рд┐рдп Kravravchiansред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВрдиреЗ рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг / рдкреБрд╕реНрддрдХрд╛рд▓рдп / рдХрд╛рд░реНрдпрдХреНрд░рдо рджреЗрдЦреЗ рдЬреЛ рдореИрдВ рд╣реНрд░рдм рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдлреБрд▓рдЕрдЬреИрдХреНрд╕ рдпрд╛рдж рд╣реИ - рд░реБрд╕реНрд▓рд╛рди рд╕рд┐рдирд┐рддреНрд╕рдХреА
рд╡рд╛рдпрд░рд╕ (
рдЬреЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдерд╛рдкрдХ) рдХрд╛ рд╡рд┐рдХрд╛рд╕? рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рддрддреНрд╡реЛрдВ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдХреЗ AJAX рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрджреЛрдВ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ
"AJAX рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реАрдзрд╛ рд▓рд┐рдВрдХ - рд╣рдорд╛рд░реА рдлреБрд▓рдЬреИрдХреНрд╕ рдбрд╛рдпрд░реЗрдХреНрдЯ рд▓рд┐рдВрдХ рддрдХрдиреАрдХ" ,
"рдкреВрд░реНрдг AJAXред рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рдЙрджрд╛рд╣рд░рдгред рдЪрд┐рдкреНрд╕ рдФрд░ рдлреАрдЪрд░реНрд╕ тАЭ рдФрд░
тАЬ рдлреНрд▓рд╛рдИ рдЕрдЬрд╛рдХреНрд╕ - рдХрдо рд▓рд┐рдЦреЛ, рдЕрдзрд┐рдХ рд╣реИред рдХрд╕реНрдЯрдо AJAX рдФрд░ рдЦреЛрдЬ рдЗрдВрдЬрди рдЕрдиреБрдХреНрд░рдордг Intercooler рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ, рдпрд╣ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рд╣реИ:
<div id="targetDiv">Results Div...</div> <i id="indicator" style="display:none" class="fa fa-spinner fa-spin"> <input id="hiddenInput" type="hidden" name="hidden" value="42"/> <div ic-trigger-on="click" ic-verb="POST" ic-src="/example" ic-include="#hiddenInput" ic-indicator="#indicator" ic-target="#targetDiv" ic-transition="none"> Click Me! </div>
Div рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж,
#hiddenInput рдХреЗ рд╕рд╛рде рдлрд╝реАрд▓реНрдб рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ POST рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░
#indicator рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ #targetDiv рдмреНрд▓реЙрдХ рдХреЛ рджреА рдЬрд╛рдПрдЧреАред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ?
рд▓рд╛рдпрдмреНрд░реЗрд░реА рдЕрдзрд┐рдХрддрдо HTML5 рдлрд╝рд╛рдЗрд▓ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдПрдХрд╛рдзрд┐рдХ рд╕рд┐рдВрдХреНрд░реЛрдирд╕, рд╕реНрдерд┐рд░, рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБ, рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдпреЛрдЧреНрдп / рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдпреЛрдЧреНрдп" рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдФрд░ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдорд╣рд╛рди рдЯреВрд▓рдХрд┐рдЯред
var flow = new Flow({ target:'/api/photo/redeem-upload-token', query:{upload_token:'my_token'} });

рдлреЗрд╕рдмреБрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рд▓рд╛рдЗрд╡ рд░реАрд▓реЛрдб рд╕рдорд╛рдзрд╛рдиред рджреЛ рднрд╛рдЧреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдирддрд╛ рд╣реИ: npm рдореЙрдбреНрдпреВрд▓ рдФрд░
рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдРрдб-рдСрди ред рд▓реЛрдХрдкреНрд░рд┐рдп рдПрдореНрдореЗрдЯ рд▓рд┐рд╡рд╕реНрдЯреИрдб рдпрд╛ рд▓рд╛рдЗрд╡ рд░реАрд▓реЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореБрдЦреНрдп рд▓рд╛рдн Node.js рдлрд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдХрд┐рд╕реА рднреА рд╕рдВрдкрд╛рджрдХ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдФрд░ рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкрд░ рд╕рд░рд▓ рдПрдХреАрдХрд░рдг рд╣реИрдВред

Google рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЗрд╡реЗрдВрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред JsAction рдЖрдкрдХреЛ рдИрд╡реЗрдВрдЯ рдиреЛрдбрд░реНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ DOM рдиреЛрдбреНрд╕ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рд╡рд╣рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ "JsAction рдПрдХ рдЫреЛрдЯреА рдШрдЯрдирд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ DOM рдиреЛрдбреНрд╕ рдХреЛ рдбреАрдХреЛрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд╕реЗ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рд╕рдВрднрд╛рд▓рддреА рд╣реИред" рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВред
jsaction рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
<div id="foo" jsaction="leftNav.clickAction;dblclick:leftNav.doubleClickAction"> some content here </div>
var eventContract = new jsaction.EventContract;
рд╕реАрдПрд╕рдПрд╕ рдПрдирд┐рдореЗрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдпрд╣ рдЖрдкрдХреЛ рд▓реИрдВрдбрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
<div class="demo-square demo1" data-anijs="if: click, do: flipInY, to: .container-box"></div>
рдпрджрд┐ рдХрд┐рд╕реА рдШрдЯрдирд╛ (рдХреНрд▓рд┐рдХ, рд╕реНрдХреНрд░реЙрд▓, рдорд╛рдЙрд╕рдУрд╡рд░), рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдкрд░ (рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛), рдХреБрдЫ рд╡реНрдпрд╡рд╣рд╛рд░ (рдШреБрдорд╛рдПрдБ рдПрдиреАрдореЗрд╢рди), рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдХрд┐рд╕реА рднреА рддрддреНрд╡)ред
рд╕рднреА рд╕рдмрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдирд╛рдУрдВ рдФрд░ рдПрдирд┐рдореЗрд╢рди рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ

рдПрдХ рдмрдбрд╝рд╛ рдХрд╛рдо рдФрд░ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЙрдкрд╣рд╛рд░ PHPource рдЦреЛрд▓рддрд╛ рд╣реИред Ampache рдПрдХ рд╡реЗрдм-рдЖрдзрд╛рд░рд┐рдд рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдмрдВрдзрдХ рд╣реИ рдЬреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдХрд┐рд╕реА рднреА рдЙрдкрдХрд░рдг рд╕реЗ рдЖрдкрдХреА рд╕рдВрдЧреАрдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдирд╛рдо рд╕реЗ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд▓рдЧрдЗрди рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░реВрдВрдЧрд╛: SCSS рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕рднреА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЗрдирд▓рд╛рдЗрди рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ, рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕реАрдбреАрдПрди (рд╡реИрдХрд▓реНрдкрд┐рдХ) рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрддреНрд░ рднреЗрдЬрддрд╛ рд╣реИред
рдореИрдВ рдЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд▓реЗрдХрд┐рди emuravjev
habrayuzer рд╕реЗ
рд╕рдорд╛рдЪрд╛рд░ : "Muravyov рдХреА рдЯрд╛рдЗрдкреЛрдЧреНрд░рд╛рдл
GitHub рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдИ рд╣реИ ",
рдлрд┐рдиреЛрдо рд╕реЗ рдЕрджреНрднреБрдд
Matryoshka.js рдФрд░
mdevils рдХреЗ рд╕реНрдЯрд╛рдЗрд▓ рдЧрд╛рдЗрдб рдХрдВрдкрд╛рдЗрд▓рд░
JSCS рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ
рдкреЛрд╕реНрдЯ , рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╕реБрдВрджрд░ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ
рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
рдкрд╢реНрдЪрд┐рдореА рд╡рд┐рдЪрд╛рд░ рдпрд╛ рдХреНрдпрд╛ рдпрд╣ Habr├й рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛:
рдЕрдВрдд рдореЗрдВ:
- рдЙрддреНрддрд░рджрд╛рдпреА рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдмрд▓реНрд╕ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИред
- рдЕрдХреНрдЯреВрдмрд░ PHP рдореЗрдВ рдПрдХ рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп CMS рд╣реИ, рдЬрд┐рд╕рдиреЗ рдХреБрдЫ рд╣реА рджрд┐рдиреЛрдВ рдореЗрдВ GitHub рдкрд░ 1000 рд╕реЗ рдЕрдзрд┐рдХ рд╢реБрд░реБрдЖрдд рдПрдХрддреНрд░ рдХреА рд╣реИред
- DOMtastic рд╕рднреА рдЖрд╡рд╢реНрдпрдХ DOM рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП jQuery рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп (gzip рдореЗрдВ 3-4kb) рд╣реИред
- рдЬреЗрдкреАрдИрдЬреА, рдкреАрдПрдирдЬреА, рд╡реЗрдмрдкреА рдФрд░ рдЯреАрдЖрдИрдПрдлрдПрдл рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреЗрдЬ рд╕рдмрд╕реЗ рддреЗрдЬ рдПрдирдкреАрдПрдо рдореЙрдбреНрдпреВрд▓ рд╣реИред
- рд▓реВрдкрдмреИрдХ - рдиреЛрдб.рдЬреЗрдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ, рдЬреЛ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд╕реЗ рд╕рднреА рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред
- рдЬреАрдереБрдм рдПрдЯрдо рд╕реЛрд░реНрд╕ рдХреЛрдб
- elasticsearch- рдбрдВрдк - elasticsearch рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛
- рд░реВрдмреА рдореЗрдВ рдорд┐рдирд┐рдХреНрд░реЙрди рдПрдХ рдХреНрд░реЛрди рдЬреЙрдмреНрд╕ рдкреНрд░рдмрдВрдзрди рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реА рд╣реИред
- рдЧрд╣рд░рд╛рдИ - Google рдХреИрдорд░рд╛ рдХрд╛ рд▓реЗрдВрд╕ рдмреНрд▓рд░ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди, рдЖрдкрдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╢рд╛рдирджрд╛рд░ рдкреНрд░рднрд╛рд╡ !
- рдЧрд╛рдЗрдб - рд╢реИрд▓реА рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЧрд╛рдЗрдб ред
- GitBook рдпрд╛рдж рд╣реИ? рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбрдХ рд╡рд┐рдВрдбреЛрдЬ, рдореИрдХ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрдХ рдЖрд╡реЗрджрди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред

- рдПрдХ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдирд┐рд╕реНрдкрдВрджрди рдХрд╛рд░реНрдпрдХреНрд░рдо
рдкрд┐рдЫрд▓рд╛ рд╕рдВрдЧреНрд░рд╣ (рдЕрдВрдХ 16)рдореИрдВ рдХрд┐рд╕реА рднреА рдЯрд╛рдЗрдкреЛрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ - рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЗрдВ рд▓рд┐рдЦреЗрдВред
рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред