рдорд╛рд╕реНрдХрдЬ - рдПрдЪрдПрдорд╡реА * рдврд╛рдВрдЪрд╛


рдЖрдзреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рд╕реЗ 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({ //     template: '.cotainer > .someInnerPanel', slots: { domInsert: function(){ //        " ", //  ,    -  } } onRenderEnd: function(){ this.$.mySuperTimer({ timespan: this.attr.timespan << 0 }); /**   -    ,         / ,       ,     .            (int) ,  undefined  . */ } }); // =  // ... :timer timespan="5000"; 


рдЕрдм, рдЖрдк рдЗрд╕ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЙрддрдирд╛ рд╣реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рддрдирд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЯрд╛рдЗрдорд░ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг:

 $.getJSON(url).done(function(collection){ jmask("ul > % each=timers > li > :timer timespan='~[timespan]'; ", collection).appendTo(document.body); }); 


рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди



рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╛рд╕реНрддреБ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрдЪрд╛рд░ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд▓рдХреНрд╖реНрдп рд╣реИред MaskJS рдореЗрдВ, рдореБрдЦреНрдп рдзреНрдпрд╛рди MVC рд╕реЗ V ( рджреГрд╢реНрдп ) рдкрд░ рд╣реИ, рдФрд░ рд╣рдо рдореЙрдбрд▓ рд╕реЗ рд╕рд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЦреМрдЯрд╛ рдХреЛ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдкрдХрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдкрд░рдд рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рднреА рд╡рд░реНрдЧ, рдбреЗрдЯрд╛ рдФрд░ рдХреЛрдИ рднреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ - рдФрд░ рди рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд░реВрдк рд╕реЗ, рдмрд▓реНрдХрд┐ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдорд╛рд╕реНрдХрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рднреАред рдПрдХ рдореЙрдбрд▓ рдпрд╛ рддреЛ рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯреНрд░рд┐рдХ (рд▓рдЧрднрдЧ - json рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) рдпрд╛ рдПрдХ рдЬрдЯрд┐рд▓ рдбреЛрдореЗрди рдореЙрдбрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЕрд▓рдЧ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЖрдЧреЗ, рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рдПрдорд╡реАрд╕реА рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рдЫреЛрдЯреЗ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛, рдХреБрдЫ рдЕрддрд┐рд░рдВрдЬрд┐рдд рд╣реЛрдВрдЧреЗ - рдЗрд╕рд▓рд┐рдП рдХрдбрд╝рд╛рдИ рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдмреЗрд╣рддрд░ рджреГрд╢реНрдпрддрд╛ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред

рд▓реЗрдХрд┐рди рдЗрди рд╕рднреА рдПрдорд╡реА * рдореЗрдВ рдореБрдЦреНрдп рдмрд╛рдд рдЙрдирдХреЗ рдирд╛рдо рдирд╣реАрдВ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рджреВрд░ рд╣реИ (рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рдХреЛ рдирд╛рд░рд╛рдЬ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?)ред рдФрд░ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реАрдзреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдЬрд┐рд╕рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдЦреБрдж рдХреЛ рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рддрддреНрдХрд╛рд▓ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред

рдШрдЯрдХ / (рдирд┐рдпрдВрддреНрд░рдХ) / (рд╡рд┐рдЬреЗрдЯ)


рдПрдПрд╕рдЯреА

MaskDOM

рдкрд╛рд░реНрд╕рд░ рд╡реНрдпреВ рдХреЛ рдПрдХ рдиреЛрдб рдЯреНрд░реА рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдлрд┐рд░ рдПрдХ "рдмрд┐рд▓реНрдбрд░" рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдФрд░ рдореЙрдбрд▓ рдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░рддрд╛ рд╣реИ - HTMLElements рдФрд░ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ (рдордирдорд╛рдирд╛ рдЯреИрдЧ) рдмрдирд╛рддрд╛ рд╣реИред MaskJS рдЕрдкрдиреЗ рдорд╛рдирдХ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдПрдХ рдФрд░ рдЕрдЪреНрдЫреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ - jmask @ github ред рдпрд╣ рдорд╛рд╕реНрдХрдбреЛрдо рдкреЗрдбрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдпрд╣ jQuery рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╣рд╛рдВ рднреА рдЖрдкрдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдорд╛рд╕реНрдХ рдХрд╛ рдкреЗрдбрд╝ рдмрдирд╛рдиреЗ рдпрд╛ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдирд░реЗрдВрдбрд░рд╕реНрдЯрд╛рд░реНрдЯ рдШрдЯрдХ:
 //.. onRenderStart: function() { jmask(this).tag('div').addClass('pixel').wrappAll('.container data-id=dialog'); // eq. == jmask(this).wrappAll('.pixel > .container data-id=dialog'); } 

рдпрджрд┐ рдЖрдк рдХрд╣реАрдВ рдбреЛрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЦреМрдЯрд╛ рдЗрд╕реЗ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓ рд▓реЗрдЧрд╛, рдФрд░ рдХрдИ рдмрд╛рд░ рддреЗрдЬ , рдПрдХ рдЫреЛрдЯрд╛ рдЙрджрд╛рд╣рд░рдг
 $('<div><span></span></div>').addClass('container').data('foo','bar').children('span').text('2013').appendTo('body') //    jmask jmask('div > span').addClass('container').data('foo','bar').children('span').text('2013').appendTo(document.body) jmask('.container foo=bar > span > "~[text]"').appendTo(document.body, { year: 2013 }) 


рдирд┐рдпрдВрддреНрд░рдгрдХрд░реНрддрд╛ рд╡реГрдХреНрд╖

рдмрд┐рд▓реНрдбрд░ рдШрдЯрдХреЛрдВ рд╕реЗ рдПрдХ рдкреЗрдбрд╝ рднреА рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдХ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ
 mask.registerHandler(':page', Compo({ // ... foo: function(){ // ... //  find     this.find(':scroller').scroller.refresh(); this.closest(':item[data-id=5]]').bar(); //  jmask     jmask(this).find(':listItem').each(function(x) { x.bar() }) } }); 



рд╕рд┐рдЧреНрдирд▓ / рд╕реНрд▓реЙрдЯ


рдорд╛рд╕реНрдХ-рдХрдореНрдкреЛ @ рдЧреАрдереВрдм

рдПрдХ рдШрдЯрдХ рдореЗрдВ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рд╣реИрд╢ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ -
 var _myCompo = Compo({ constructor: function(){ this.name = 'C'; }, events: { 'touchstart: .pane': function(event){ this instanceof _myCompo // -> true }, //... } }); 

рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣, рд╣рдо рдорд╛рд░реНрдХрдЕрдк (рд╕реАрдПрд╕рдПрд╕ рдХрдХреНрд╖рд╛рдПрдВ) рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ - рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ - рджреГрд╢реНрдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп, рдЬреЛ рджреГрд╢реНрдп рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдХрдИ рдЪреМрдЦрдЯреЗ рдореЗрдВ, рдЖрдк рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рджреГрд╢реНрдп рд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд╛рд╕реНрдХрдЬреЗрдПрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ - div > '~[: controllerMethod("test") ]' рдХрдВрдЯреНрд░реЛрд▓рдореИрдереЛрдб div > '~[: controllerMethod("test") ]' (рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЦреМрдЯрд╛ рдЕрдкрдиреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрд╛рд░реНрд╕рд░ рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛ рд╣реИ рдмрд┐рдирд╛ / рдирдП рд╕рдорд╛рд░реЛрд╣ / eval рдХреЗ рд╕рд╛рде )ред рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ рдЬрдм рджреГрд╢реНрдп рдирд┐рдпрдВрддреНрд░рдХ рдкреЗрдбрд╝ рдХреЛ рд╕рдВрдХреЗрдд рднреЗрдЬрддрд╛ рд╣реИ, рддрддреНрд╡ рдХреЗ "рдорд╛рд▓рд┐рдХ" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ - рдФрд░ рд╡рд╣рд╛рдВ, рдЬреЛ рдХреЛрдИ рднреА рдЗрд╕реЗ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
 mask.registerHandler(':myCompo', Compo({ constructor: function(){ this.name = 'C'; }, slots : { greet: function(sender){ // sender   dom    event object,     alert(this.name); // "C" // return false -  ,          . }, //... } })); mask.render(" :myCompo > .panel x-signal='click: greet'; "); 

slots рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрд▓реЙрдЯреНрд╕ рдХреА рдШреЛрд╖рдгрд╛рддреНрдордХ рдШреЛрд╖рдгрд╛ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░реЗрдВ - рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛, рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рд▓реЙрдЬрд┐рдХ рдХреЛ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рд╕рдВрдмрдВрдзрд┐рдд рд╕рд┐рдЧреНрдирд▓ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдорд╛рд╕реНрдХ рдЦреБрдж рдЗрди рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рдо рдХрд┐рд╕реА рднреА рд╕рдордп рдПрдХ рд╕реНрд▓реЙрдЯ рдпрд╛ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд╛рде рд╣реА, рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдЗрд╕ "рджрд╛рдпрд░реЗ" рдореЗрдВ рдЗрд╕ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА : рдЕрдХреНрд╖рдо ред

рдкрд╛рдЗрдкреНрд╕

рд╕рд╛рдзрд╛рд░рдг рд╕рдВрдХреЗрдд рдХреЗрд╡рд▓ рдШрдЯрдХ рдкреЗрдбрд╝ рдХреЗ рдКрдкрд░ рдпрд╛ рдиреАрдЪреЗ рдЪрд▓рддреЗ рд╣реИрдВ, рдФрд░ рджреЛ рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдмрд╛рд╣рд░ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдЯреНрдпреВрдмреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
 mask.registerHandler(':userInfo', Compo({ pipes: { // pipe name user: { logout: function(){ this.model.authenticated = false; } } } })); // = template.mask = menu { #logout x-pipe-signal='click: user.logout' > button > 'Sign out' // .... } section #content { //   "user"       % use="user" > :userInfo type='brief' ; // .. } section #footer { // bind to "user.authenticated" prop %% if="user.authenticated" > % each="user.keys" > "~[.]" } 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рд╕рднреА рд╕рдВрдХреЗрдд рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рд╕реНрд╡рдпрдВ рднреА рднреЗрдЬреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
  this.emitIn('name', args...); //  this.emitOut('name', args...); //  Compo.pipe('user').emit('logout'); //       "". 


рдмрд╛рдЗрдВрдбрд┐рдВрдЧ


рдирдХрд╛рдм-рдмрдВрдзрди @ рдЧреАрдардм
"рдмрд╛рдЗрдВрдбрд┐рдВрдЧ" рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рд╕рдм рдХреБрдЫ рд╢реИрд▓реА рдХреА рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкрд░рдВрдкрд░рд╛рдУрдВ рдореЗрдВ рд╣реИ: рд╡рди- / рдЯреВ-рд╡реЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ, рдХрд╕реНрдЯрдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░, рдРрд░реЗ рдореНрдпреВрдЯреЗрдЯрд░, рд╡реИрд▓рд┐рдбреЗрдЯрд░ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдорд╛рд╕реНрдХ рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ -рдХреЛрд╢рд┐рд╢ | рдмрд╛рдЗрдВрдбрд┐рдВрдЧ ред рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЙрддреНрдкрд╛рджрдХ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реЗрдВрдбрд░ рд╕рдордп рдореЗрдВ рд╡реЗ рдХреЗрд╡рд▓ рдШрд░ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВ рдФрд░ defineProperty/ __defineSetter__ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЙрдбрд▓ рд╕реЗ defineProperty/ __defineSetter__ ред рдФрд░ рд╣рд╛рдВ - рдЖрдкрдиреЗ рд╕рд╣реА рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдХрд┐ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ - рд▓реЗрдХрд┐рди рдорд╛рдирдХ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ, рдЖрдк рдлреЙрд░реНрдо setX/getX , рдпрд╛ рдЕрдиреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдЬреИрд╕реЗ .get("x")/.set("x") рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ setX/getX рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рджрд┐рд▓рдЪрд╕реНрдк рдЕрдВрдХ:


рдбрд┐рдЬрд╝рд╛рдЗрди

рдпрд╣ рди рдХреЗрд╡рд▓ рдмрдбрд╝реЗ рдФрд░ рдЙрддреНрдкрд╛рджрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╣реИред рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ ( :customCheckBox ) рд╕реЗ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ ( :inbox ) рддрдХ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ, рд╣рдо рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдмрдЧ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ debugger рдФрд░ log рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ:
 .user { % debugger; .user-status > '~[bind:info.status]' %% log="info.status"; } 


рд╣реЙрдЯ рд░реАрд▓реЛрдб рдкреНрд▓рдЧрд┐рди

... рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЖрдкрдиреЗ рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ "рдЧрд░реНрдо" рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ - рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд▓реНрдХрд┐ рддреБрдЪреНрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрддрдиреА рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИрдВред рдпрд╣рд╛рдВ, рдХреНрд▓реЛрдЬрд░, рдбреЛрдо рдЗрд╡реЗрдВрдЯреНрд╕, рдЗрддреНрдпрд╛рджрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рд╕рднреА рдореЙрдбреНрдпреВрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 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 рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рдмрд╣реБрдд рдХреБрдЫ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдореБрдЭреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд▓рд╛рд╣ рдпрд╛ рд╕реБрдЭрд╛рд╡ рдкрд░ рднреА рдЦреБрд╢реА рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ / рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рддрдХрдиреАрдХ рдЬрд╛рдирддреЗ рд╣реИрдВ - рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдЬреНрдЮрд╛рди рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ)ред рдЖрдк рд╡рд┐рдХрд╛рд╕ рд╕реЗ рднреА рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реМрднрд╛рдЧреНрдп рд╣реИред

Source: https://habr.com/ru/post/In179359/


All Articles