рдЖрдзреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рд╕реЗ MaskJS рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо DOM рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЛ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА, рд▓реЗрдХрд┐рди рдЙрд╕реА рд╕рдордп рдЙрддреНрдкрд╛рджрдХ рд╡реЗрдм рдврд╛рдВрдЪреЗ рдореЗрдВ рдмрджрд▓рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рд▓реЗрдЦ рдЖрдкрдХреЛ рд╕рдВрднрд╡рддрдГ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдХрд╛рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдПрдЧрд╛ред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ DOM рдЗрд╡реЗрдВрдЯ рдХреЗ рдмрдЬрд╛рдп рд╕рд┐рдЧреНрдирд▓ рдФрд░ рд╕реНрд▓реЙрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред рдФрд░ рдХреИрд╕реЗ рдШрдЯрдХ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред рдореБрдЦреМрдЯрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реА рд╣реЛ рдЪреБрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЦреНрдп рдЕрдВрддрд░ рд╕рдВрднрд╡рддрдГ
render flow
, рдЬрд╣рд╛рдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдлреНрд░реИрдЧрдореЗрдВрдЯ / рдХрдВрдЯреНрд░реЛрд▓рд░ / "рдмрд╛рдЗрдВрдбрд┐рдВрдЧ" рдЪрд░рдгреЛрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред
рдорд╛рд╕реНрдХрдЬ @ рдЧреАрдардмрд╡рд╛рд░реНрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдЯреВрдбреВ
рдЙрджрд╛рд╣рд░рдг ред
рдорд╛рд╕реНрдХ-рдлрд┐рдбрд▓ рд╡реЗрдмрдХрд┐рдЯ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИрд░рд╛рдп
рдЕрдВрдХрди
рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рддреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реАрдПрд╕рдПрд╕ / рдХрдо / рд╕реИрд╕ рдХреЗ рд╕рдорд╛рди рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рдХреАрдбрд╝реЗ рддрдп рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрдВрдЬрди рдЕрдм рд╕реНрдерд┐рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
p { div#info.dark > 'Single Child' button data-user='123' style='cursor:pointer;' > span > 'Submit' input type=hidden value=x; }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдордиреЗ рдЯреИрдЧ рд╕реЗ "<>" рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рд╕рдорд╛рдкрди рдЯреИрдЧ рд╣рдЯрд╛ рджрд┐рдП, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдмреНрд▓реЙрдХ рд╕рд╛рдорд╛рдиреНрдп "{}" рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред
(рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдмреНрд▓реЙрдХ ">" рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рде рдЪрдпрдирдХрд░реНрддрд╛ рдХреА рддрд░рд╣ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрдЪреНрдЪреЛрдВ рдХреЗ рдмрд┐рдирд╛ - рдпрд╣ рдПрдХ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХреЗ рд╕рд╛рде рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред рдкрд╛рда рдХреЛ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЪрд╛рд▓рд╛рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдорд╛рд░реНрдХрдЕрдк рдХреЛ
рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ - рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ html рдХреА рдЕрддрд┐рд░реЗрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдорд╛рдВрдЧ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдкрд╛рда рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдХрдИ html рднрдХреНрддреЛрдВ рдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ - рд╣рдо, рдФрд░ рд╢рд╛рдпрдж рдЖрдкрдХреА рддрд░рд╣, рдХрдИ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд╕рд╛рде рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рдХреЛрдИ рдкрд╛рда рдирд╣реАрдВ рд╣реИ - рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреБрдВрдЬреА рд╣реИ, рдлрд┐рд░ рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдорд╛рд░реНрдХрдЕрдк рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреНрдпреЛрдВ рдкреВрдЫрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рдФрд░ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдкреИрдЯрд░реНрди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореБрдЦреМрдЯрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдиреНрдпреВрдирддрдо рд╕реНрдерд╛рди рд▓реЗрддрд╛ рд╣реИред
рдЧрддрд┐
рдпрд╣ MaskJS рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдореБрдЦреНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ - рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдирд╛ред Html рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рддреБрд▓рдиреАрдп рдЧрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛, рдФрд░ рд╡реЗрдмрдХрд┐рдЯ рдЗрдВрдЬрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕реЗ рдмрдврд╝рд╛рдирд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдПред рдФрд░ рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдмрдХрд┐рдЯ рдореЗрдВ
html рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдзреАрдорд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐
str.charCodeAt рдФрд░
document.createElement рдмрд╣реБрдд рддреЗрдЬ рд╣реИрдВ)ред рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, MaskJS рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ / рдкреНрд░рдХреНрд╖реЗрдк / рдбреЛрдо рдШрдЯрдирд╛рдУрдВ / рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣реЗрдб рдиреНрдпреВрдирддрдо рд╣реИред рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдЕрдм рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдХреА рдЦреБрд╢реА рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рд╣реИред рдпрджрд┐ рд░реБрдЪрд┐ рд╣реИ, рддреЛ рдЖрдк
github рдкрд░ рд░реАрдбрдореА рдореЗрдВ jsperf.com рдХреЗ рдХрдИ рд▓рд┐рдВрдХ рдкрд╛рдПрдВрдЧреЗред
рд▓рдЪреАрд▓рд╛рдкрди
MaskJS рдПрдХ рдХрд╛рдлреА рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реИред рд╣рдо рдХрд┐рд╕реА рднреА рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирдП рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ (
рдПрдЪ рдПрдорд╡реАрд╕реА) рдХреА рдкреВрд░реА рдкрджрд╛рдиреБрдХреНрд░рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИред рд╣рдо рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХрд┐рд╕реА рднреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЙрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐рд╕реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХрд┐рд╕реА рдореЙрдбрд▓ рдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗ рдпрд╛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдореБрдЦреМрдЯрд╛ рд╕реАрдзреЗ DocumentFragment рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╣рдореЗрд╢рд╛ DOM рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдЖрдИрдУрд╕реА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рд╕рдорд╛рдирддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк "рдЬрд╛рдирддреЗ рд╣реИрдВ", рддреЛ рдЖрдк рдЦреБрдж рд╣реА рд╕рдордЭ рдЬрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ
("рдЧреАрд▓рд╛ рд╣реЛ рдЬрд╛рдирд╛") рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдпрд╛ рдирдХрд▓ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ jQuery рд╡рд┐рдЬреЗрдЯ (рдпрд╛ рд╕рдорддреБрд▓реНрдп) рд╣реИ рдФрд░ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдШрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд░ рдмрд╛рд░ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдердХ рдЧрдП рд╣реИрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдИ - рдЖрдкрдиреЗ рдПрдХ рджреГрд╢реНрдп рдмрдирд╛рдпрд╛, рдЗрд╕реЗ DOM рдореЗрдВ рдбрд╛рд▓рд╛ рдФрд░ рдлрд┐рд░ рдЖрд╡рд╢реНрдпрдХ рддрддреНрд╡реЛрдВ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ред рдФрд░ рдЖрд░рдВрднреАрдХреГрдд
рд╡рд┐рдЬреЗрдЯреНрд╕ ред рдорд╛рд╕реНрдХрдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде, рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рдЬреЗрдЯ рдкрд░ рдПрдХ рд░реИрдк рдЯреИрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдореБрдЦреМрдЯрд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд░реЗрдЧрд╛:
mask.registerHandler(':timer', Compo({
рдЕрдм, рдЖрдк рдЗрд╕ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЙрддрдирд╛ рд╣реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рддрдирд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЯрд╛рдЗрдорд░ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг:
$.getJSON(url).done(function(collection){ jmask("ul > % each=timers > li > :timer timespan='~[timespan]'; ", collection).appendTo(document.body); });
рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди
рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╛рд╕реНрддреБ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрдЪрд╛рд░ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд▓рдХреНрд╖реНрдп рд╣реИред MaskJS рдореЗрдВ, рдореБрдЦреНрдп рдзреНрдпрд╛рди MVC рд╕реЗ
V (
рджреГрд╢реНрдп ) рдкрд░ рд╣реИ, рдФрд░ рд╣рдо рдореЙрдбрд▓ рд╕реЗ рд╕рд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЦреМрдЯрд╛ рдХреЛ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдкрдХрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдкрд░рдд рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рднреА рд╡рд░реНрдЧ, рдбреЗрдЯрд╛ рдФрд░ рдХреЛрдИ рднреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ - рдФрд░ рди рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд░реВрдк рд╕реЗ, рдмрд▓реНрдХрд┐ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдорд╛рд╕реНрдХрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рднреАред рдПрдХ рдореЙрдбрд▓ рдпрд╛ рддреЛ рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯреНрд░рд┐рдХ (рд▓рдЧрднрдЧ - json рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) рдпрд╛ рдПрдХ рдЬрдЯрд┐рд▓ рдбреЛрдореЗрди рдореЙрдбрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЕрд▓рдЧ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЖрдЧреЗ, рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рдПрдорд╡реАрд╕реА рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рдЫреЛрдЯреЗ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛, рдХреБрдЫ рдЕрддрд┐рд░рдВрдЬрд┐рдд рд╣реЛрдВрдЧреЗ - рдЗрд╕рд▓рд┐рдП рдХрдбрд╝рд╛рдИ рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдмреЗрд╣рддрд░ рджреГрд╢реНрдпрддрд╛ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред
- рдпрд╣рд╛рдБ рд╣рдо рджреЗрдЦреЗрдВ:
mask.render(" div > 'A' ");
- рдореЙрдбрд▓ рд╕реЗ рдПрдХ рдкрддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдХреЗ рдЧрддрд┐рд╢реАрд▓рддрд╛ рдЬреЛрдбрд╝реЗрдВ (
var model = { letter: 'A' }
): mask.render(" div > '~[letter]' ", model)
- (рдбреЗрдЯрд╛) рдореЙрдбрд▓ / рджреЗрдЦреЗрдВ
- рд╣рдо рдореЙрдбрд▓ рдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реЗ рдЬреЛрдбрд╝реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдпрджрд┐ рдореЙрдбрд▓ рдореЗрдВ рдЕрдХреНрд╖рд░ рдмрджрд▓ рдЬрд╛рдП, рддреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рдП:
mask.render(" div > '~[bind: letter]' ", model);
- рдпрд╣рд╛рдБ рдореЙрдбрд▓ / рджреЗрдЦреЗрдВ / ViewModel рд╣реИ
- рдпрджрд┐ рд╣рдореЗрдВ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдпрд╛ рдкреВрд░рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдореЙрдбрд▓ / рджреГрд╢реНрдп / рдПрдбрд╛рдкреНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:
mask.registerHandler(':myModelAdapter', { renderStart: function(model){ _extendModelFromLocalStorage(model); } }); mask.render(" :myModelAdapter > div > '~[letter]' ", model);
- рдЕрдЧрд░ рд╣рдореЗрдВ рдореЙрдбрд▓ рд╕реЗ рдЕрд▓рдЧ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рддреЛ рд╣рдореЗрдВ рдореЙрдбрд▓ / рд╡реНрдпреВ / рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛
mask.registerHandler(':myPresenter', Compo({ onRenderStart: function(model){ this.letter = _handle(model); this.model = this; } }); mask.render(" :myPresenter > div > '~[letter]' ", model);
- рдпрджрд┐ рдЖрдк рдЪрд┐рдЯреНрдареА рдХреЛ рдХреНрд▓рд┐рдХ рдкрд░ "рдмреА" рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рд╣рд╛рдп рдореЙрдбрд▓ / рд╡реНрдпреВ / рдХрдВрдЯреНрд░реЛрд▓рд░:
mask.registerHandler(':letterChanger', Compo({ events: { 'click: div' : function(event){ this.model.letter = 'B';
- рдЕрдЧрд░ рдЖрдкрдХреЛ рдореЙрдбрд▓ рдХреЛ рдкреВрд░рдХ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ + рдХреНрд▓рд┐рдХ рдХрд╛ рдЬрд╡рд╛рдм - рдФрд░ рдЕрдм рдкрджрд╛рдиреБрдХреНрд░рдо - HMVC
mask.render(':myAdapter > :letterChanger > div > тАЬ~[bind: letter]" ');
- рдпрджрд┐ рдЖрдкрдХреЛ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рджреГрд╢реНрдп рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ - (рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдорд╛рд╕реНрдХрдЬреЗрдПрд╕ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реИ)
mask.registerHandler(':letter', Compo({ template: ":letterChanger > div > '~[bind: letter]' " }); mask.render(" :myAdapter > :letter; " , model);
рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреА рдкреВрд░реА рд╢рдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд▓реЛрдбрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ, рдЙрдирдХреЗ рдЕрднреНрдпрд╛рд╡реЗрджрди рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдШрдЯрдХ рд░рдЪрдирд╛ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг:
header { #logo; :menu; :userInfo; } :viewManager { :userView; :aboutView; } :pageActivity; :notifier; :footer;
рдШрдЯрдХ рдирд╛рдо рдХреЗрд╡рд▓ рдирд┐рд░реВрдкрдг рдХреЗ рдмреЗрд╣рддрд░ рдЕрд░реНрде рдХреЗ рд▓рд┐рдП рдПрдХ рдмреГрд╣рджрд╛рдиреНрддреНрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЗрди рд╕рднреА рдПрдорд╡реА * рдореЗрдВ рдореБрдЦреНрдп рдмрд╛рдд рдЙрдирдХреЗ рдирд╛рдо рдирд╣реАрдВ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рджреВрд░ рд╣реИ (рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рдХреЛ рдирд╛рд░рд╛рдЬ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?)ред рдФрд░ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реАрдзреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдЬрд┐рд╕рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдЦреБрдж рдХреЛ рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рддрддреНрдХрд╛рд▓ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред
рдШрдЯрдХ / (рдирд┐рдпрдВрддреНрд░рдХ) / (рд╡рд┐рдЬреЗрдЯ)
рдПрдПрд╕рдЯреА
MaskDOM
рдкрд╛рд░реНрд╕рд░ рд╡реНрдпреВ рдХреЛ рдПрдХ рдиреЛрдб рдЯреНрд░реА рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдлрд┐рд░ рдПрдХ "рдмрд┐рд▓реНрдбрд░" рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдФрд░ рдореЙрдбрд▓ рдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░рддрд╛ рд╣реИ - HTMLElements рдФрд░ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ (рдордирдорд╛рдирд╛ рдЯреИрдЧ) рдмрдирд╛рддрд╛ рд╣реИред MaskJS рдЕрдкрдиреЗ рдорд╛рдирдХ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдПрдХ рдФрд░ рдЕрдЪреНрдЫреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ -
jmask @ github ред рдпрд╣ рдорд╛рд╕реНрдХрдбреЛрдо рдкреЗрдбрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдпрд╣ jQuery рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╣рд╛рдВ рднреА рдЖрдкрдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдорд╛рд╕реНрдХ рдХрд╛ рдкреЗрдбрд╝ рдмрдирд╛рдиреЗ рдпрд╛ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдСрдирд░реЗрдВрдбрд░рд╕реНрдЯрд╛рд░реНрдЯ рдШрдЯрдХ:
рдпрджрд┐ рдЖрдк рдХрд╣реАрдВ рдбреЛрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЦреМрдЯрд╛ рдЗрд╕реЗ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓ рд▓реЗрдЧрд╛, рдФрд░
рдХрдИ рдмрд╛рд░ рддреЗрдЬ , рдПрдХ рдЫреЛрдЯрд╛ рдЙрджрд╛рд╣рд░рдг
$('<div><span></span></div>').addClass('container').data('foo','bar').children('span').text('2013').appendTo('body')
рдирд┐рдпрдВрддреНрд░рдгрдХрд░реНрддрд╛ рд╡реГрдХреНрд╖
рдмрд┐рд▓реНрдбрд░ рдШрдЯрдХреЛрдВ рд╕реЗ рдПрдХ рдкреЗрдбрд╝ рднреА рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдХ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ
mask.registerHandler(':page', Compo({
рд╕рд┐рдЧреНрдирд▓ / рд╕реНрд▓реЙрдЯ
рдорд╛рд╕реНрдХ-рдХрдореНрдкреЛ @ рдЧреАрдереВрдмрдПрдХ рдШрдЯрдХ рдореЗрдВ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рд╣реИрд╢ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ -
var _myCompo = Compo({ constructor: function(){ this.name = 'C'; }, events: { 'touchstart: .pane': function(event){ this instanceof _myCompo
рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣, рд╣рдо рдорд╛рд░реНрдХрдЕрдк (рд╕реАрдПрд╕рдПрд╕ рдХрдХреНрд╖рд╛рдПрдВ) рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ - рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ - рджреГрд╢реНрдп рдХреЗ
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп, рдЬреЛ рджреГрд╢реНрдп рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдХрдИ рдЪреМрдЦрдЯреЗ рдореЗрдВ, рдЖрдк рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рджреГрд╢реНрдп рд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд╛рд╕реНрдХрдЬреЗрдПрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕рдорд░реНрдерди
рдХрд░рддреЗ рд╣реИрдВ -
div > '~[: controllerMethod("test") ]'
рдХрдВрдЯреНрд░реЛрд▓рдореИрдереЛрдб
div > '~[: controllerMethod("test") ]'
(рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЦреМрдЯрд╛ рдЕрдкрдиреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрд╛рд░реНрд╕рд░ рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛ рд╣реИ рдмрд┐рдирд╛ / рдирдП рд╕рдорд╛рд░реЛрд╣ / eval рдХреЗ рд╕рд╛рде )ред рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ рдЬрдм рджреГрд╢реНрдп рдирд┐рдпрдВрддреНрд░рдХ рдкреЗрдбрд╝ рдХреЛ рд╕рдВрдХреЗрдд рднреЗрдЬрддрд╛ рд╣реИ, рддрддреНрд╡ рдХреЗ "рдорд╛рд▓рд┐рдХ" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ - рдФрд░ рд╡рд╣рд╛рдВ, рдЬреЛ рдХреЛрдИ рднреА рдЗрд╕реЗ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
mask.registerHandler(':myCompo', Compo({ constructor: function(){ this.name = 'C'; }, slots : { greet: function(sender){
slots
рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрд▓реЙрдЯреНрд╕ рдХреА рдШреЛрд╖рдгрд╛рддреНрдордХ рдШреЛрд╖рдгрд╛ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░реЗрдВ - рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛, рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рд▓реЙрдЬрд┐рдХ рдХреЛ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рд╕рдВрдмрдВрдзрд┐рдд рд╕рд┐рдЧреНрдирд▓ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдорд╛рд╕реНрдХ рдЦреБрдж рдЗрди рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рдо рдХрд┐рд╕реА рднреА рд╕рдордп рдПрдХ рд╕реНрд▓реЙрдЯ рдпрд╛ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд╛рде рд╣реА, рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдЗрд╕ "рджрд╛рдпрд░реЗ" рдореЗрдВ рдЗрд╕ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА
: рдЕрдХреНрд╖рдо ред
рдкрд╛рдЗрдкреНрд╕
рд╕рд╛рдзрд╛рд░рдг рд╕рдВрдХреЗрдд рдХреЗрд╡рд▓ рдШрдЯрдХ рдкреЗрдбрд╝ рдХреЗ рдКрдкрд░ рдпрд╛ рдиреАрдЪреЗ рдЪрд▓рддреЗ рд╣реИрдВ, рдФрд░ рджреЛ рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдмрд╛рд╣рд░ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдЯреНрдпреВрдмреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
mask.registerHandler(':userInfo', Compo({ pipes: {
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАредрд╕рднреА рд╕рдВрдХреЗрдд рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рд╕реНрд╡рдпрдВ рднреА рднреЗрдЬреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
this.emitIn('name', args...);
рдмрд╛рдЗрдВрдбрд┐рдВрдЧ
рдирдХрд╛рдм-рдмрдВрдзрди @ рдЧреАрдардм"рдмрд╛рдЗрдВрдбрд┐рдВрдЧ" рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рд╕рдм рдХреБрдЫ рд╢реИрд▓реА рдХреА рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкрд░рдВрдкрд░рд╛рдУрдВ рдореЗрдВ рд╣реИ: рд╡рди- / рдЯреВ-рд╡реЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ, рдХрд╕реНрдЯрдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░, рдРрд░реЗ рдореНрдпреВрдЯреЗрдЯрд░, рд╡реИрд▓рд┐рдбреЗрдЯрд░ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг
рдорд╛рд╕реНрдХ рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
-рдХреЛрд╢рд┐рд╢ | рдмрд╛рдЗрдВрдбрд┐рдВрдЧ ред рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЙрддреНрдкрд╛рджрдХ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реЗрдВрдбрд░ рд╕рдордп рдореЗрдВ рд╡реЗ рдХреЗрд╡рд▓ рдШрд░ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВ рдФрд░
defineProperty/ __defineSetter__
рдорд╛рдзреНрдпрдо рд╕реЗ рдореЙрдбрд▓ рд╕реЗ
defineProperty/ __defineSetter__
ред рдФрд░ рд╣рд╛рдВ - рдЖрдкрдиреЗ рд╕рд╣реА рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдХрд┐ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ - рд▓реЗрдХрд┐рди рдорд╛рдирдХ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ, рдЖрдк рдлреЙрд░реНрдо
setX/getX
, рдпрд╛ рдЕрдиреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдЬреИрд╕реЗ
.get("x")/.set("x")
рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ
setX/getX
рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рджрд┐рд▓рдЪрд╕реНрдк рдЕрдВрдХ:
- рд╣рдо рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдЙрджрд╛рд╣рд░рдг:
div style='height: ~[bind: item.age * index + 10]px'
рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдпреБ рдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдХреИрд╕реЗ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ - рдпрд╣ div
рдкреИрдирд▓ рдХреА рдКрдВрдЪрд╛рдИ рд╣реЛрдЧреА
dom events / (jquery) custom events
/ рд╕рд┐рдЧреНрдирд▓реНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЯреВ-рд╡реЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧред- рдореЙрдбрд▓ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рджреНрд╡рд┐-рджрд┐рд╢рд╛рддреНрдордХ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдореЗрдВ рдШрдЯрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
:validate
ред рдПрдХ рдореЙрдбрд▓ рдореВрд▓реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░рджрд╛рддрд╛ рдкрд╣рд▓реЗ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛, рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЕрдВрддрд┐рдо рд╕рд╣реА рдореВрд▓реНрдп рдкрд░ рд▓реМрдЯрдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдореЙрдбрд▓ рд╕рдордЧреНрд░ рд╣реИред
input #device-type type=value > :dualbind value="age" { :validate match="^[az]{2}-[\d]{4}$" message=" ... pattern: xx-1234" }
- рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдорд╛рд╕реНрдХ рдореЗрдВ рдПрдХ рдорд╛рдирдХ
%
рдШрдЯрдХ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ if/else/each/repeat/use
рдФрд░ рдЗрд╕реА рддрд░рд╣ред рддреЛ, рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЗрди рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░рдлрд╝рд╛ рдмрдВрдзрди рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
%% if="state == true" { %% each=userList {
рдбрд┐рдЬрд╝рд╛рдЗрди
рдпрд╣ рди рдХреЗрд╡рд▓ рдмрдбрд╝реЗ рдФрд░ рдЙрддреНрдкрд╛рджрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╣реИред рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ (
:customCheckBox
) рд╕реЗ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ (
:inbox
) рддрдХ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ, рд╣рдо рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдмрдЧ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ
debugger
рдФрд░
log
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ:
.user { % debugger; .user-status > '~[bind:info.status]' %% log="info.status"; }
debugger
- рд░реЗрдВрдбрд░ рдлрд╝реНрд▓реЛ рдХреЗ рджреМрд░рд╛рди рд╣рдо рд░реБрдХ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдЯреИрдХ рдХрдВрдкреЛрдиреЗрдВрдЯ, рдореМрдЬреВрджрд╛ рдореЙрдбрд▓ рдФрд░ html рдПрд▓рд┐рдореЗрдВрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
log
- рдХрдВрд╕реЛрд▓ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ред рд╣рдо рдореЙрдбрд▓ рдФрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рджреЛрдиреЛрдВ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣реЙрдЯ рд░реАрд▓реЛрдб рдкреНрд▓рдЧрд┐рди
... рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПрдЖрдкрдиреЗ рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ "рдЧрд░реНрдо" рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ - рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд▓реНрдХрд┐ рддреБрдЪреНрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрддрдиреА рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИрдВред рдпрд╣рд╛рдВ, рдХреНрд▓реЛрдЬрд░, рдбреЛрдо рдЗрд╡реЗрдВрдЯреНрд╕, рдЗрддреНрдпрд╛рджрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рд╕рднреА рдореЙрдбреНрдпреВрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
IncludeJS
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдкреБрдирдГ рд▓реЛрдб рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддреА рд╣реИред
IncludeJS.Builder
рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред
IncludeJS.Builder
рдПрдХ рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдорд╛рдВрдЧреА рдЧрдИ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрддрд╛ рд╣реИ рдФрд░
IncludeJS
рдорд╛рдзреНрдпрдо рд╕реЗ
IncludeJS
ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рд▓реЗрдХрд┐рди MaskJS, рдмрджрд▓реЗ рдореЗрдВ,
reload plugin рдореЗрдВ
mask.registerHandler
рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб
mask.registerHandler
рд╣реИ - рдЗрд╕рдореЗрдВ рдпрд╣ рдЙрди рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ рдЬреЛ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрде рд╕реЗ рд╕рдВрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред рдкреНрд▓рдЧрдЗрди рднреА рдирд┐рдпрдВрддреНрд░рдХ рдирд┐рд░реНрдорд╛рдг рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЙрдбрд▓ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдмрдЪрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рд╣рдореЗрдВ рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрди рдШрдЯрдХреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ рдЬреЛ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА
(instances)
рдХреА рдПрдХ рд╕реВрдЪреА рднреАред рдФрд░ рдлрд┐рд░ рддрдХрдиреАрдХреА рдЪреАрдЬ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ
remove/dispose
рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдЙрдирдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЕрджреНрдпрддрди рдШрдЯрдХреЛрдВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реИред рд╕рд┐рдЧреНрдирд▓ рдФрд░ рд╕реНрд▓реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рдШрдЯрдХреЛрдВ рдХреА рдбреЛрдо рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рд╕рд┐рдЧреНрдирд▓ рдРрд╕рд╛ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдХрдВрдкреЛрдиреЗрдВрдЯ
рдорд╛рд╕реНрдХ рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдордиреЗ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ
IncludeJS
рдЗрд╕реЗ
customCompo.js
рдлрд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд░реВрдк рдореЗрдВ
customCompo.js
ред рдЗрдирдЬреЗрдИрдЬреЗрдПрд╕ рдХрд╛ рд╡рд┐рд╖рдп рдХрд╛рдлреА рдХреНрд╖рдорддрд╛рд╡рд╛рди рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╕рднреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рд╕рдордп рд╣реИред рд▓реЗрдХрд┐рди рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рд╕реНрдХрдЬреЗрдПрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдкрдХреЛ рдордХреНрдЦреА рдкрд░ рдШрдЯрдХреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдШрдЯрдХ рдПрди рдХреНрд▓рд┐рдХреНрд╕ (рд▓рдЧрднрдЧ рдХрд╣реАрдВ рд╕рдВрд╡рд╛рдж рдореЗрдВ) рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИред
Node.js рдФрд░ TODO
MaskJS рд╡рд░реНрддрдорд╛рди рдореЗрдВ рднреА рдиреЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХрд╛рдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рдорд╛рди рд╣реИрдВ, рдХреЗрд╡рд▓ рдорд╛рд╕реНрдХ рдбреЛрдо рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ html рдбреЛрдо рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдлрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░, рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ
рдСрдирд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ DOM рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред
рд░реВрдЯрд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рд╕реЗ рдирд╣реАрдВ, рдХрдИ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдореЗрдВ, рдмрд▓реНрдХрд┐ рдЕрднреНрдпрд╛рд╡реЗрджрди рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ? рджреГрд╢реНрдп рд╕реНрд╡рдпрдВ рдЖрд╡рд╢реНрдпрдХ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИред рдЖрдк рддреБрд░рдВрдд рдорд╛рд╕реНрдЯрд░ рдкреЗрдЬ рддрдХрдиреАрдХ рдФрд░ рдЕрдзрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рдо рдЕрднреА рддрдХ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдлрд┐рд░ рднреА рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рд▓рдХреНрд╖реНрдп рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ / рдирд┐рдпрдВрддреНрд░рдХреЛрдВ / рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИ (рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ), рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдЧреНрд░рд╛рд╣рдХ рдкрд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде
рдмреИрдХрдПрдВрдб рдкрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рдеред
рдореИрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реАрдПрд╕рдПрд╕ рдврд╛рдВрдЪреЗ рдкрд░ рдШрдЯрдХреЛрдВ рд╕реЗ рдПрдХ рдЖрд╡рд░рдг рдмрдирд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореБрдЦреМрдЯрд╛ рд╕рдордп рдкрд░ рдорд╛рд░реНрдХрдЕрдк рдХреЛ рд╕рд░рд▓ рдХрд░реЗрдЧрд╛ - рд╕реАрдПрд╕рдПрд╕ рдХрдХреНрд╖рд╛рдПрдВ рдФрд░
div wrappers
рдЫрд┐рдкрд╛рдПрдВ)ред рдФрд░ рдореЗрдиреВ / рдХреИрд▓реЗрдВрдбрд░ / рд╕рдВрд╡рд╛рдж рдЖрджрд┐ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдВред
FIN
рдпрд╣ рд╢рд╛рдпрдж рд╕рднреА рдореБрдЦреНрдп рдмрд┐рдВрджреБ рд╣реИрдВред рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрдо рд╕реЗ рдХрдо рд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдХрд╣рд╛рдиреАрдХрд╛рд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рди рд▓рд┐рдЦреЗрдВ - "IKS рдврд╛рдВрдЪреЗ рдХреЛ рджреЗрдЦреЗрдВ!" - рд╣рдо рдореБрдЦреНрдп рдзрд╛рд░рд╛ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЧрд╣рд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ
рдмрд╣реБрдд рдЦреБрд╢ рд╣реВрдБред
рдореИрдВ рднреА рдХрдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдП rma4ok
habrayuzar рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рдмрд╣реБрдд рдХреБрдЫ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдореБрдЭреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд▓рд╛рд╣ рдпрд╛ рд╕реБрдЭрд╛рд╡ рдкрд░ рднреА рдЦреБрд╢реА рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ / рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рддрдХрдиреАрдХ рдЬрд╛рдирддреЗ рд╣реИрдВ - рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдЬреНрдЮрд╛рди рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ)ред рдЖрдк рд╡рд┐рдХрд╛рд╕ рд╕реЗ рднреА рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реМрднрд╛рдЧреНрдп рд╣реИред