рдбреЛрдЬрд╝реЛ рдЯреВрд▓рдХрд┐рдЯ рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рд╕рдмрд╕реЗ рдХрдо рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдврд╛рдВрдЪрд╛ рд╣реИред рдЬрдмрдХрд┐ рд▓рдЧрднрдЧ рд╣рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдпрд╛ рдЯреВрд▓рдХрд┐рдЯ рдХреБрдЫ рднреА рдФрд░ рдЕрдзрд┐рдХ рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ, рдбреЛрдЬрд╝реЛ рдЯреВрд▓рдХрд┐рдЯ рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рдореНрдореЛрд╣рдХ рддрд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреЛрд╕реНрдЯ Dojo рдЯреВрд▓рдХрд┐рдЯ рдХреА рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдЧреА, рдФрд░ рдпрд╣ рднреА рдмрддрд╛рдПрдЧреА рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
1. рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ рдФрд░ рдПрдПрдордбреА рдмреВрдЯрд▓реЛрдбрд░
рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб, рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреА рддрд░рд╣, рдЖрдХрд╛рд░ рдореЗрдВ рдмрдврд╝рддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓рд░рд┐рдЯреА рд╡рд╣ рдХреБрдВрдЬреА рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдФрд░ рдЙрддреНрдкрд╛рджрдХ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдбрд╛рдЙрдирд▓реЛрдб, рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рджрд┐рди рдЕрддреАрдд рдореЗрдВ рд╣реИрдВред Dojo рдЯреВрд▓рдХрд┐рдЯ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдХрд╛ рдПрдХ рдкреНрд░рдореБрдЦ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдпрд╣ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдЙрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП dojo.require рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреГрд╖реНрда рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╕рдВрд╕рд╛рдзрди рд▓реЛрдбрд┐рдВрдЧ рд╡рд┐рдзрд┐ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдереА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╕рдВрд╕реНрдХрд░рдг рдерд╛ред Dojo рдЕрдм рд░реЙрд▓реНрдб рдЧрд┐рд▓ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдмреВрдЯрд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдХрдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдореЙрдбреНрдпреВрд▓ рдмрд╣реБрдд рд╕рд░рд▓ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рд▓рдЧрднрдЧ рд╕рднреА AMD рдмреВрдЯрд▓реЛрдбрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдпрд╣ рд╕рд░рд▓ рдореЙрдбреНрдпреВрд▓ рдШреЛрд╖рдгрд╛ рдкрджреНрдзрддрд┐, рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдВрд░рдЪрд┐рдд рд╣реИред
рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рдпрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рд░рд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ рдЬреЛ рдЬрд▓реНрджреА рд╕реЗ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рдореЙрдбреНрдпреВрд▓рд░рд┐рдЯреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХреЗрд╡рд▓ рд╡рд╣реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЪрд╛рд╣рд┐рдПред
рдмрд╣реБрдЖрдпрд╛рдореА Dojo рдбрд╛рдЙрдирд▓реЛрдбрд░ рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕реЗ рдХрд┐ DOM рддрддреНрдкрд░рддрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ (dojo / domReady!) рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛рд░реНрдп (hasJS)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмреВрдЯрд▓реЛрдбрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕реНрдорд╛рд░реНрдЯ рд╣реИ
рдмрд╛рд╣рд░реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ:
Dojo рди рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░ рднреА рд╣реИред
2. рдбреЛрдЬреЛ / рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░
рдЬрдмрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╕рдЪреНрдЪреЗ рд╡рд░реНрдЧ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, Dojo Toolkit рдбреЛрдЬреЛ / рдШреЛрд╖рдгрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╡рд░реНрдЧ рдХреА рддрд░рд╣ рд╡рд┐рд░рд╛рд╕рдд рдкреИрдЯрд░реНрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдШреЛрд╖рдгрд╛ рдХреЛ рдПрдХ рдврд╛рдВрдЪреЗ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд░ рд╕рдХреЗрдВ:
- рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛрдб рдХреЛ рдХрдо рдпрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛;
- рдХрдИ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╢реБрджреНрдзрддрд╛ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
- рдЕрдиреБрдХреВрд▓рди рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдореМрдЬреВрджрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ;
- рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рдирд┐рдордп рдореЙрдбреНрдпреВрд▓ рдХреЛрдб;
- рдореМрдЬреВрджрд╛ Dojo рд╡рд░реНрдЧ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдкрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдорд░рдореНрдордд рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
Dojo рд╡рд░реНрдЧ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдбреЛрдЬреЛ / рдШреЛрд╖рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИ:
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХрд┐рд╕реА рднреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд░рд╛рд╕рдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдФрд░ рдЕрд╢реБрджреНрдзрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдб рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рднреА рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
Dojo рд╡рд░реНрдЧ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдЧреБрдг рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИрдВред рдХрдХреНрд╖рд╛ рдмрдирд╛рдиреЗ рдХреА рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
3. рдкрд╣рд▓реВ рдФрд░ "рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп"
рдкрд╣рд▓реВ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирдП рд░реБрдЭрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИрдВ ... рдФрд░ рдбреЛрдЬреЛ рдЯреВрд▓рдХрд┐рдЯ рдЙрдиреНрд╣реЗрдВ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж рдлрд╝рдВрдХреНрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп: "рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ", "рдорд╛рдЙрд╕рдУрд╡рд░", "рдХреАрдк" - рдкрд╣рд▓реВ рдлрд╝рдВрдХреНрд╢рди рдП рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╛ рдмрд╛рдж рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдмреА рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ - рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ!
рдЗрд╕ рддрд░рд╣ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдлрдВрдХреНрд╢рди рдЪрд▓рд╛рдирд╛:
рджреВрд╕рд░реЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рдирд╛ рднреА рдмрд┐рд▓реНрдХреБрд▓ рд╕рд░рд▓ рд╣реИ:
aspect.before(myObject, "someMethod", function(arg1, arg2) {
рдбрд┐рдЬрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рддреЗ рд╕рдордп рдкрд╣рд▓реВ рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рд╡рд┐рдЬреЗрдЯ рдпрд╛ рдХрдХреНрд╖рд╛ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реБрдирдиреЗ рд╕реЗ рдЕрдиреНрдп рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХрдИ рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрдбрд╝реЗ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
var self = this; aspect.after(this.submitButton, "onClick", function() {
4. рд╕реНрдердЧрд┐рдд рдФрд░ рдПрдХреАрдХреГрдд AJAX рдкрд░рд┐рд╡рд╣рди
рдбрд┐рдлреНрд░реЗрдбреНрд╕ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдСрдкрд░реЗрд╢рди рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдПрдХ рд╕реНрдерд╛рди рд╕реЗ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред JQuery рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрдзрди рдореЗрдВ рд╕реЗ рдПрдХ Deferreds рдерд╛ред рд╕рдВрдпреЛрдЧ рд╕реЗ, Dojo рдЯреАрдо рдХрд╛ рдордВрддреНрд░ рд╣реИ "Dojo рдпрд╣ рдХрд┐рдпрд╛ред" Dojo рдЯреВрд▓рдХрд┐рдЯ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ Deferreds рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╕рд░рд▓ рдФрд░ рдЬрдЯрд┐рд▓ AJAX рд╕рдВрдЪрд╛рд▓рди, рдПрдирд┐рдореЗрд╢рди рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде, Dojo рдиреЗ рдорд╛рдирдХ XMLHTTPRequest рдХреЗ рдЗрдирдкреБрдЯ-рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЗ рдкреЗрд╢ рдХрд┐рдП, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рдВрдбреЛ рдХреЗ рдирд╛рдо рд░реИрдкрд░, рдбреЛрдЬреЛ / io / iframe рдореЙрдбреНрдпреВрд▓ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рд╛рдЗрд▓ рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рддреЛ Dojo рдореЗрдВ рдХрдм рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЬрдм рднреА рдХреЛрдИ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИред рдПрдХреНрд╕рдПрдЪрдЖрд░ рдЕрдиреБрд░реЛрдзреЛрдВ, рдбреЛрдЬреЛ / рдЖрдИрдУ рдЕрдиреБрд░реЛрдзреЛрдВ, рдПрдирд┐рдореЗрд╢рди, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╕реЗ рдбреАрдлрд╝реНрд░реИрдбреНрд╕ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВред
рдФрд░ dojo / io / iframe рдореЙрдбреНрдпреВрд▓ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ?
require(["dojo/io/iframe"], function(ioIframe){
Dojo рдореЗрдВ Deferred рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕реБрдВрджрд░рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ Deferred рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ API рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдПрдХреАрдХрд░рдг рдореЗрдВ рддреЗрдЬреА рдЖрдПрдЧреАред рд╕рдВрд╕реНрдХрд░рдг 1.8 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, Dojo / рдЕрдиреБрд░реЛрдз рдореЙрдбреНрдпреВрд▓ рдирдИ AJAX рд╕рдореЗрдХрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ, Dojo рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ dojo / request рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
require(["dojo/request"], function(request){ request("request.html").then(function(response){
рдПрдХреАрдХреГрдд рдПрдкреАрдЖрдИ рд╡рд┐рдХрд╛рд╕ рдХреЛ рддреЗрдЬ рдФрд░ рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИред
5. рджреАрдЬреАрдд рдпреВрдЖрдИ рдлреНрд░реЗрдорд╡рд░реНрдХ

рдПрдХ рд╢рдХ рдХреЗ рдмрд┐рдирд╛, рдЕрдиреНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреМрдЦрдЯреЗ рдкрд░ рджреЛрдЬреЛ рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд▓рд╛рдн рдЗрд╕рдХреА рджреАрдЬреАрдд рдпреВрдЖрдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред
рдпрд╣ рд▓реЗрдЖрдЙрдЯ, рдлрд╝реЙрд░реНрдо рдФрд░ рдЕрдиреНрдп рдЯреВрд▓ рдХрд╛ рдПрдХ рдЕрднреВрддрдкреВрд░реНрд╡ рд╕реЗрдЯ рд╣реИ:
- рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдкреВрд░реНрдг рд╕реНрдерд╛рдиреАрдпрдХрд░рдг;
- рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╡рд┐рдЬреЗрдЯ рд▓реЗрдЖрдЙрдЯ, рддрддреНрд╡реЛрдВ рдХреА 100% рдКрдВрдЪрд╛рдИ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ, рдХрд╕реНрдЯрдо рд╡рд┐рднрд╛рдЬрдХ рдмрдирд╛рдиреЗ, рд▓реЗрдЖрдЙрдЯ рдмрджрд▓рдиреЗ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП;
- рдмреЗрд╣рддрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рддреНрдпрд╛рдкрди рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдПрдВ;
- рдХрдИ рд╡рд┐рд╖рдпреЛрдВ, рдирд╡реАрдирддрдо рдХреЛ "рдХреНрд▓рд╛рд░реЛ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рдХрд╕реНрдЯрдо рд╡рд┐рд╖рдпреЛрдВ рдореЗрдВ рдХрдо рд╕рдорд░реНрдерди;
- рдореЙрдбреНрдпреВрд▓рд░ рдХреЛрдб, рдЬреЛ рдХрд┐рд╕реА рднреА рд╡рд┐рдЬреЗрдЯ рдХреЗ рдкреВрд░реНрдг рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЙрдирдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рджреАрдЬреАрдд рдЖрдкрдХреЛ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рдШреЛрд╖рд┐рдд рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рдШреЛрд╖рдгрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
<div data-dojo-type="dijit.form.Button" data-dojo-props="label:'Click Me!'"></div>
рд╡рд┐рдЬреЗрдЯ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
require(["dijit/form/Button"], function(Button) {
рдХрдИ рджрд░реНрдЬрди рд╡рд┐рдЧреЗрдЯреНрд╕ рджрд┐рдЬреАрдд рдкреИрдХреЗрдЬ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдХрдИ рджрд░реНрдЬрди рд╡рд┐рдЬреЗрдЯ рдбреЛрдЬреЛрдХреНрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╣реИрдВред Dojo UI рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдЬреЗрдЯ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ JQuery UI, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред
6. рдбреЛрдЬреЛ рдореЛрдмрд╛рдЗрд▓

рд▓рдЧрднрдЧ рд╕рднреА рдЗрдВрдЯрд░рдиреЗрдЯ рдореБрджреНрджреЛрдВ рдХреА рддрд░рд╣, рдбреЛрдЬреЛ рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ - рдбреЛрдЬреЙрдХреНрд╕ / рдореЛрдмрд╛рдЗрд▓ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЙрдбреНрдпреВрд▓ред
Dojo рдореЛрдмрд╛рдЗрд▓ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛;
- рдЖрдИрдУрдПрд╕, рдПрдВрдбреНрд░реЙрдЗрдб, рдмреНрд▓реИрдХрдмреЗрд░реА, рд╕рд╛рде рд╣реА рдмреБрдирд┐рдпрд╛рджреА рдХреЗ рд▓рд┐рдП рдереАрдо;
- рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдЬреЗрдЯ;
- рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкреИрдирд▓ рдФрд░ рд▓реЗрдЖрдЙрдЯ;
- рдЖрд╕рд╛рди рд╡рд┐рдХрд╛рд╕ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбреЗрд╕реНрдХрдЯреЙрдк рд╕рдорд░реНрдердиред
рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рджреАрдЬреАрдд рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЗ рд╕рдорд╛рди рд╣реА рдШреЛрд╖рд┐рдд рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЛрдмрд╛рдЗрд▓ рд╕реНрдХреНрд░реАрди рдЖрд▓рд╕реА рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдбреЗрдЯрд╛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Dojox / mobile рдХреЗ рд▓рд┐рдП HTML рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╣реИ:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/> <meta name="apple-mobile-web-app-capable" content="yes" /> <title> </title> </head> <body> </body> </html>
Dojox / mobile / deviceTheme рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреБрдХреНрдд рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рд╖рдп рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВрдЧреЗ:
require([ "dojox/mobile/ScrollableView", "dojox/mobile/Heading", "dojox/mobile/RoundRectList", "dojox/mobile/TabBar", "dojox/parser" ]);
рд╕рднреА рдХреЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рд╡рд┐рдЧреЗрдЯреНрд╕ рдФрд░ рд╕реНрдХреНрд░реАрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВрдЧреЗ:
<div id="tweets" data-dojo-type="dojox.mobile.ScrollableView" data-dojo-props="selected: true"> <h1 data-dojo-type="dojox.mobile.Heading"> <div data-dojo-type="dojox.mobile.ToolBarButton" data-dojo-props="icon: 'images/refresh.png'" class="mblDomButton tweetviewRefresh" style="float:right;"> </div> Tweets </h1> <ul data-dojo-type="dojox.mobile.RoundRectList"> <li data-dojo-type="dojox.mobile.ListItem"> Tweet </li> </ul> </div> <div id="mentions" data-dojo-type="dojox.mobile.ScrollableView"> <h1 data-dojo-type="dojox.mobile.Heading"> <div data-dojo-type="dojox.mobile.ToolBarButton" data-dojo-props="icon: 'images/refresh.png'" class="mblDomButton tweetviewRefresh" style="float:right;"> </div> </h1> <ul data-dojo-type="dojox.mobile.RoundRectList"> <li data-dojo-type="dojox.mobile.ListItem"> Mention tweet </li> </ul> </div> <div id="settings" data-dojo-type="dojox.mobile.ScrollableView"> <h1 data-dojo-type="dojox.mobile.Heading">Settings</h1> <h2 data-dojo-type="dojox.mobile.RoundRectCategory">Show</h2> <ul data-dojo-type="dojox.mobile.RoundRectList"> <li data-dojo-type="dojox.mobile.ListItem"> . </li> </ul> </div>
рдбреЛрдЬреЙрдХреНрд╕ / рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рджреНрдзрд╛рдВрдд, рджрд┐рдЬреАрдд рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рди рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджрд┐рдЬреАрдд рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡ рд╣реИ, рдФрд░ рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдЧреЗрдЯреНрд╕ рдХрд╛ рдЖрд╕рд╛рди рд╡рд┐рдХрд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
7. GFX рдФрд░ рдЪрд╛рд░реНрдЯ
CSS рдПрдиреАрдореЗрд╢рди рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЯреВрд▓ рд╣реИ, рдЬреЛ рдПрдирд┐рдореЗрдЯреЗрдб рдЫрд╡рд┐рдпреЛрдВ рдХреА рддрд░рд╣ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдФрд░ рд╢рдХреНрддрд┐ рдореЗрдВ рд╣реАрди рд╣реИред рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЯреВрд▓ рд╣рдореЗрд╢рд╛ рд░рд╛рдлреЗрд▓ рдЬреЗрдПрд╕ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбреЛрдЬреЛ рдЬреАрдПрдлрдПрдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИред рдЬреАрдПрдлрдПрдХреНрд╕ рдХреЛ рдПрд╕рд╡реАрдЬреА, рд╡реАрдПрдордПрд▓, рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ, рдХреИрдирд╡рд╕ рдФрд░ рд╡реЗрдмрдЬреАрдПрд▓ рдореЗрдВ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреАрдПрдлрдПрдХреНрд╕ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ (рджреАрд░реНрдШрд╡реГрддреНрдд, рд░реЗрдЦрд╛, рдЖрджрд┐) рдХреЗ рд╕рднреА рд░реВрдкреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЖрд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИред
Dojo GFX рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
- рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдШреБрдорд╛рдПрдБ, рдШреБрдорд╛рдПрдБ рдФрд░ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ;
- рдПрдиреАрдореЗрд╢рди, рд╕реНрдЯреНрд░реЙрдХрд░ рдФрд░ рдЕрдиреНрдп рдЧреНрд░рд╛рдлрд┐рдХ рдЧреБрдг рднрд░реЗрдВ;
- рд░реИрдЦрд┐рдХ рдФрд░ рдкрд░рд┐рдкрддреНрд░ рдврд╛рд▓;
- рдорд╛рдЙрд╕ рдШрдЯрдирд╛рдУрдВ
- рдкреНрд░рдмрдВрдзрди рдФрд░ рдПрдиреАрдореЗрд╢рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореВрд╣ рдмрдирд╛рдирд╛ред
рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕реЗрдЯ рдмрдирд╛рдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
require(["dojox/gfx", "dojo/domReady"], function(gfx) { gfx.renderer = "canvas";
Dojo рдореЗрдВ Dojo GFX API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ dojox / рдЪрд╛рд░реНрдЯрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╢рд╛рдорд┐рд▓ рд╣реИред рд░реЗрдЦрд╛рдВрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рджреГрд╢реНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ рдФрд░ рд╡реНрдпрд░реНрде рдирд╣реАрдВ рд╣реИ - рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рджреЗрдЦрдХрд░ рдкреВрд░реНрдг рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
Dojox / charting рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
- рдХрдИ рдЪрд╛рд░реНрдЯ;
- рдПрдирд┐рдореЗрдЯреЗрдб рдЧреНрд░рд╛рдлрд┐рдХреНрд╕;
- MoveSlice (рдПрдХ рдкрд╛рдИ рдЪрд╛рд░реНрдЯ рдХреЗ рднрд╛рдЧреЛрдВ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рддрд╛ рд╣реИ), рдЯреВрд▓рдЯрд┐рдк, рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рд╕рд╣рд┐рдд рдкреНрд▓рдЧрдЗрдиреНрд╕;
- рд╕реНрд╡-рдЕрджреНрдпрддрди рдЪрд╛рд░реНрдЯ (Dojo рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред
рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдкрд╛рдИ рдЪрд╛рд░реНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
<script> </script> <div data-dojo-type="dojox.charting.widget.Chart" data-dojo-props="theme:dojox.charting.themes.Claro" id="viewsChart" style="width: 550px; height: 550px;"> <div class="plot" name="default" type="Pie" radius="200" fontColor="#000" labelOffset="-20"></div> <div class="series" name="Last Week's Visits" array="chartData"></div> </div>

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рдИ рдЪрд╛рд░реНрдЯ рдмрдирд╛рддрд╛ рд╣реИ, рдбреЛрдЬреЛрдХреНрд╕ / рдЪрд╛рд░реНрдЯрд┐рдВрдЧ рдЕрдзрд┐рдХ рд╕рдХреНрд╖рдо рд╣реИ, рдмрд╣реБрдд рдЕрдзрд┐рдХред
8. SitePen рдЯреАрдо рд╕реЗ Dgrid

рдПрдХ Dojo рдХрдВрд╕рд▓реНрдЯреЗрдВрд╕реА рдХрдВрдкрдиреА, SitePen, Dojo рдХреЗ рд╕рд╣-рд╕рдВрд╕реНрдерд╛рдкрдХ Dylan Schiemann рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред рдЗрд╕рдХреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдиреЗ рдЕрддреНрдпрдзрд┐рдХ рдкреНрд░рдлреБрд▓реНрд▓рд┐рдд рдФрд░ рдЕрдирд╛рдбрд╝реА рдбреЛрдЬреЛ / рдЧреНрд░рд┐рдб рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЕрдВрддрддрдГ рдПрдХ рдбреНрд░рдЧрд┐рдб рдмрдирд╛рдпрд╛ред
рдкрд░рд┐рдгрд╛рдореА рдкреИрдХреЗрдЬ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
- рдХрдИ рд╡рд┐рд╖рдпреЛрдВ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рд╖рдпреЛрдВ рдХрд╛ рдЖрд╕рд╛рди рдирд┐рд░реНрдорд╛рдг;
- рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рд╕рдВрдЧрддрддрд╛;
- рддрд╛рд░ рдЫрдБрдЯрд╛рдИ;
- рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рдореЗрдВ рджреЗрд░реА рдХреА рд╕рдВрднрд╛рд╡рдирд╛;
- рдкреЗрдбрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╕рдорд░реНрдерди;
- рдбрд╛рдпрдЬрд╝реЗрдЯ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
- рд╡рд┐рднрд┐рдиреНрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди: рдХреЙрд▓рдореЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛, рдбреНрд░реИрдЧрдиреЗрдирдбреНрд░реЙрдк, рдкреЗрдЬрд┐рдВрдЧ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
рд╕рд╛рдЗрдЯрдкреЗрди рдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдбреНрд░рдЧрд┐рдб рдШрдЯрдХ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд╛ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдкрдиреА рдЦреБрдж рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╕рдВрдкрдиреНрди рдЯреЗрдмрд▓ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЖрд╕рд╛рди рд╣реИред
9. рдбреАрдУрдПрдЪ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ
рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╢рд╛рдпрдж рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкрд░реАрдХреНрд╖рдг рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред Dojo рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ DOH рдлреНрд░реЗрдорд╡рд░реНрдХ Dojo рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рд╣реИред рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдпрдВ рдХрдИ рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдЙрдкрд░реЛрдХреНрдд рдкрд░реАрдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛, рдЕрд░реНрдерд╛рддреНред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреНрд░рд┐рдпрд╛рдПрдВ? рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг AJAX, рдПрдиреАрдореЗрд╢рди рдФрд░ рдЕрдиреНрдп рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдп рд╣реИрдВред DOH рдбреАрдб рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
{ name: "Testing deferred interaction", timeout: 5000, runTest: function() { var deferred = new doh.Deferred(); myWidget.doAjaxAction().then(deferred.getTestCallback(function(){ doh.assertTrue(true); }); return deferred; } }
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, "doTestCallback" рдлрд╝рдВрдХреНрд╢рди рдХреЛ "doAjaxAction" рд╡рд┐рдзрд┐ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдЧрд╛ред
рдмрд╛рдж рдХреЗ рдкрд░реАрдХреНрд╖рдг doh.Deferred рдХреЗ рд╣рд▓ рд╣реЛрдиреЗ рддрдХ рдирд╣реАрдВ рдЪрд▓реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рдШрдбрд╝реА рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ рдФрд░ рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдбреАрдУрдПрдЪ рдЕрдиреНрдп рдЕрдиреНрдп рдврд╛рдВрдЪреЗ рд╕реЗ рдмреЗрд╣рддрд░ рдкрд░реАрдХреНрд╖рдг рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдбреАрдУрдПрдЪ рдПрдХ рдЬрд╛рд╡рд╛ рд░реЛрдмреЛрдЯ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдФрд░ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдорд╛рдЙрд╕ рдФрд░ рдХреАрдмреЛрд░реНрдб рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╣реЛрдорд░ рд╕рд┐рдореНрдкрд╕рди рдХреЛ рдЪрд┐рд▓реНрд▓рд╛рддреЗ рд╣реБрдП рдХрд╣рддреЗ рд╣реИрдВ, "рд╡рд╛рд╣реЛ!" рддреЛ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рднрдпрд╛рдирдХ "рдбреАрдУрдПрдЪ!" рд╕реБрдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХреЛрдб рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
10. рджреЛрдЬреЛ рдмрд┐рд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕
рдЬрдм рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдиреБрдХреВрд▓рд┐рдд рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпрд╣ рдиреНрдпреВрдирддрдо рдФрд░ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХреЗред рдпрд╣ рд╕рд╛рдЗрдЯ рдкрд░ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред
Dojo рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдкрд╛рд░реНрд╕ рдШреЛрд╖рд┐рдд рд╡рд░реНрдЧреЛрдВ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред Dojo рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдмрд┐рд▓реНрдб рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд╣рддреЗ рд╣реИрдВред рдирд┐рд░реНрдорд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рдкрд░рддреЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдиреАрдЪреЗ рджреА рдЧрдИ рдорд┐рд╕рд╛рд▓ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░реЛрдлрд╛рдЗрд▓ рджрд┐рдЦрд╛рддреА рд╣реИ:
var profile = { releaseDir: "/path/to/releaseDir", basePath: "..", action: "release", cssOptimize: "comments", mini: true, optimize: "closure", layerOptimize: "closure", stripConsole: "all", selectorEngine: "acme", layers: { "dojo/dojo": { include: [ "dojo/dojo", "app/main" ], customBase: true, boot: true } }, resourceTags: { amd: function (filename, mid) { return /\.js$/.test(filename); } } };
Dojo рдмрд┐рд▓реНрдб рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
- рдорд┐рдирд┐рдлрд╝рд╛рдпрд░ (Google рджреНрд╡рд╛рд░рд╛ ShrinkSafe рдпрд╛ рдмрдВрдж рдХрд░рдирд╛)
- рдиреНрдпреВрдирддрдо рд╕реНрддрд░;
- рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБ
- рдЪрдпрдирдХрд░реНрддрд╛ рддрдВрддреНрд░;
- рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫред
рдирд┐рд░реНрдорд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди (рд╣рд╛рд▓ рд╣реА рдореЗрдВ Node.js рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░рдХ рдпрд╛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг:
./build.sh --profile /path/to/app/app.profile.js --require /path/to/app/boot.js
Dojo рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреАрдврд╝реА рдкрд░ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдорд╛рддреНрд░рд╛ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рдФрд░ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИред рдиреНрдпреВрдирддрдо рдФрд░ рд╕реНрддрд░рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ CSS рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдкрдХрд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ!
11. рдмреЛрдирд╕! рджреЛрдЬреЛ рдЦрдЬрд╛рдирд╛ред рдЕрдзрд┐рдХ рдбреЛрдЬреЛрдХреНрд╕
Dojox Mobile рдФрд░ GFX: рджреЛ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг Dojox рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпреЗ Dojo рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрдИ рдЫрд┐рдкреЗ рд╣реБрдП рдЦрдЬрд╛рдиреЗ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рджреЛ рд╣реИрдВред рдЗрди рдЦрдЬрд╛рдиреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЗрдЖрдЙрдЯ рдФрд░ рд╡рд┐рдЧреЗрдЯреНрд╕;
- рдЙрдиреНрдирдд рдФрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕рддреНрдпрд╛рдкрди рдкреНрд░рдХреНрд░рд┐рдпрд╛;
- WebSocket рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдорддрджрд╛рди рдЖрд╡рд░рдг;
- рдкреНрд░рд╕реНрддреБрддрд┐ рд╡рд┐рдЬреЗрдЯ, рдЬреИрд╕реЗ рдХрд┐ рд▓рд╛рдЗрдЯрдмреЙрдХреНрд╕, рд╕реНрд▓рд╛рдЗрдб рд╢реЛ, рдЧреИрд▓рд░реА рдФрд░ рдмрд╣реБрдд рдХреБрдЫ;
- рдЙрдиреНрдирдд IO рд╕рд╣рд╛рдпрдХ;
- рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд Drag'n'Drop рдкреБрд╕реНрддрдХрд╛рд▓рдп;
- NodeList рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред
рдФрд░ рдпрд╣ рднреА Dojo рдХреЗ рдХрдИ рдЧреБрдгреЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
Dojo Toolkit JavaScript:
- JavaScript ;
- JavaScript AJAX ;
- ;
- UI ;
- ;
- ;
- !
, Dojo. , Dojo (, , XHR ) -.