рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди GWTред рднрд╛рдЧ 1

рдЫрд╡рд┐
рдпрд╣ рдкреЛрд╕реНрдЯ GWT рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдЕрдиреБрдХреВрд▓рди рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд╢реБрд░реБрдЖрдд рд╣реИред рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдЬрдорд╛ рдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ 2-3 рднрд╛рдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд╣рдо рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╣рдорд╛рд░рд╛ рдХреНрдпрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред

рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди


GWT рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛:

рдФрд░ рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗред

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдЬреБрджрд╛рдИ, рдСрди-рдбрд┐рдорд╛рдВрдб рдбрд╛рдЙрдирд▓реЛрдб


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

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдХреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, GWT.runAsync рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
RunAsync рдЙрджрд╛рд╣рд░рдг:

 GWT.runAsync(new RunAsyncCallback() { public void onSuccess() { new MySettingsDialog().show(); } public void onFailure(Throwable ohNoes) { // indicate that something went wrong, // usually a connectivity or server problem } }); 

рдЙрд╕реА рд╕рдордп, GWT рдХрдВрдкрд╛рдЗрд▓рд░ рди рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд▓реЗрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреЛрдб рдХреЛ рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рднреА рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЕрд▓рдЧрд╛рд╡ рд╕рд╣реА рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрд▓рдЧрд╛рд╡ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдХреЛрдб рдореЗрдВ рдХреНрд░реЙрд╕-рд░реЗрдлрд░реЗрдВрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
Google I / O рдХреЗ рд╕рд╛рде GWT рдХреИрди рдбреВ рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдореЗрдВ, рдЖрдк runAsync рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рдХрд╛рдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдЧрддрд┐ рдХреА рддреБрд▓рдирд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:



рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд░рдирдЕрдВрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЛрдб рд╕рдордп рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ AsyncProxy рд╡рд░реНрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рд╕рдВрднрд╡рддрдГ, рдореИрдВ рд▓реЗрдЦ рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рдЙрд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рджреВрдВрдЧрд╛, рдЕрдм рдЖрдк рдЙрд╕рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рднрд╛рд░реА рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛


Google рд╡реЗрдм рдЯреВрд▓рдХрд┐рдЯ рд╕рдореВрд╣ рдкреГрд╖реНрда рдкрд░, рдЖрдк рд╕рдВрдХрд▓рд┐рдд GWT рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ "рднрд╛рд░реА" рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреЛрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рддреБрд▓рдирд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдб рд╕рдВрдмрдВрдзрд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ ~ 10 Kb рдХреЗ рдЧреНрд░рд╛рд╣рдХ рднрд╛рдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
RequestFactory рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИ - рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЪрд░реНрдЪрд╛ рдореЗрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ 150 Kb рддрдХ рдмрдврд╝ рдЧрдпрд╛ред
рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рднреА рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ - рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдирдХрд╛ рд╕рдорд╛рд╡реЗрд╢ рдХрдИ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рдХрд░реЗрдЧрд╛ред

рд╕рдВрд╕рд╛рдзрди рдХреИрд╢рд┐рдВрдЧ


рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб HTTP рдЕрдиреБрд░реЛрдз рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рд╕реАрдорд╛рдПрдВ рд╣реИрдВред рдпрджрд┐ рдЖрд╡реЗрджрди рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдЧрд╛, рддреЛ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рд╢реБрд▓реНрдХ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛ред
рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдордВрджреА рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрд╕рд╛рдзрди рдХреИрд╢рд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
GWT рдХрд╛ рдПрдХ рддрдВрддреНрд░ рдХреНрд▓рд╛рдЗрдВрдЯрдмрдВрдбрд▓ рд╣реИред ClientBundle рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рдкрд╛рда, рдЧреНрд░рд╛рдлрд╝рд┐рдХ, CSS рдФрд░ рдЕрдиреНрдп) рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯрдмрдВрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдВ рдкрдврд╝реЗрдВред
ClientBundle рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд╛рдн:

рдЧреНрд░рд╛рд╣рдХ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрди рд╕рдВрдЧреНрд░рд╣рдг рдХреИрд╕реЗ рдХрдо рдХрд░рддрд╛ рд╣реИ?
рд╡рд╛рдкрд╕ GWT рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпрд╛ рдкреНрд░рд╕реНрддреБрддрд┐ред рдЗрд╕рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:



рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрд╕реА рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣реЗрдб рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?



GWT RPC рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдПрдБ REST рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


GWT RPC рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИред рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛрдб рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдирд╛, рдЖрдИрдбреАрдИ рд╕реЗ рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдпрд╣ GWT рдореЗрдВ AJAX рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЕрджреНрднреБрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЛ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред
GWT RPC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЦреНрдп рдиреБрдХрд╕рд╛рди рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдФрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
REST рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Zack Grossbart рдХреЗ рдПрдХ рд▓реЗрдЦ рдореЗрдВ , рдЖрдк GWT рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП REST рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрд╕реА рд╕рдордп, рдЙрдирдХреЗ рд▓реЗрдЦ рдореЗрдВ 4 рдЕрдзрд┐рдХ GWT рдПрдВрдЯреА-рдкреИрдЯрд░реНрди, REST рдХреЗ рдореБрдЦреНрдп рд▓рд╛рдн рдиреЛрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ:

рдЖрд╡реЗрджрди рдкрд░ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ


рдмрд╣реБрдд рдмрд╛рд░ gwt рдбреЗрд╡рд▓рдкрд░ рдСрдЯреЛ-рд╕рдорд╛рдпреЛрдЬрд┐рдд рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдШрдЯрдХреЛрдВ рдореЗрдВ рдКрдВрдЪрд╛рдИ = "100%" рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рдпрд╣ рдХрд╣рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ contentHeight, рдСрдлрд╕реЗрдЯрд╣рд╛рдЗрдЯ рднрд╛рд░реА рд╕рдВрдЪрд╛рд▓рди рд╣реИрдВред рдирд┐рдореНрди рдЖрдИрдИрдПрдЪ рдСрдлрд╕реЗрдЯрд╣рд╛рдЗрдЯ рд░рдирдЯрд╛рдЗрдо рдЖрдБрдХрдбрд╝реЗ Google I / O 2009 рд╕реЗ рдорд╛рдк рдореЗрдВ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рди рдХреЗрд╡рд▓ рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдЦрд░рд╛рдм рд╣реИ; 18 рдорд╛рдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╢рд┐рдЦрд░ рдореВрд▓реНрдп 85 рдПрдордПрд╕ рдХреЗ рдЖрджреЗрд╢ рдХреЗ рдореВрд▓реНрдп рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ред
рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛ рдХреЗ рдкреВрд░реНрдг рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдЕрдХреНрд╕рд░, рдордЬрдмреВрд░ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрдЯрд╛рдЗрд▓ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдИ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддреА рд╣реИред
рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдХреИрд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдкрдХреЛ CSS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╕реАрдПрд╕рдПрд╕-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд▓реЗрдЖрдЙрдЯ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛, рдШрдЯрдХреЛрдВ рдХреЗ рдкреВрд░реЗ рдбреЛрдо рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдСрдлрд╕реЗрдЯрд╣рд╛рдЗрдЯ рдЬреИрд╕реЗ рд╣реЗрд╡реАрд╡реЗрдЯ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред
рдЖрдк рдПрдХ рдЕрджреНрдпрддрди DockPanel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рджреМрд░рд╛рди javaScript рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

рд╕рдВрдЪрд░рдг рдЕрдиреБрдХреВрд▓рди


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

рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


GWT рдореЗрдВ рдПрдХ рд▓рдВрдмрд┐рдд рдХреЙрд▓ рддрдВрддреНрд░ рд╣реИред рдкрд╣рд▓реЗ DeferredCommand рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛, рдпрд╣ рдкрджрд╛рд╡рдирдд рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рддрдВрддреНрд░ рдХреЛ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╢реЗрдбреНрдпреВрд▓рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЧрд╛рд░рдВрдЯреА рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдИрд╡реЗрдВрдЯ рд▓реВрдк рдХреА рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдмрд╛рдж рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛рдПрдЧреАред
рдлрд╛рдпрджреЗ:

рдЕрдХреНрд╕рд░, рдХреБрдЫ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рджреЗрд░ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдХреНрд╖рдо рдЙрдкрдпреЛрдЧ рдпреВрдЖрдИ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди UI рдХреЛ рдЕрдзрд┐рдХ рддреЗрдЬрд╝ рдмрдирд╛ рджреЗрдЧрд╛ред

рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдкреИрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджреЗрд░реА рд▓рдЧрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рд▓рдЧрд╛рддрд╛рд░ рдХрдИ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдмреИрдЪ рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдПрдХрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдВрд╕реНрдХрд░рдг 2.3 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, GWT рдореЗрдВ RequestFactory рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ:

 requestContext.method1().to(new Receiver<T>(){...}); requestContext.method2().to(new Receiver<T>(){...}); requestContext.fire(new Receiver<Void>(){...}); //called only 1 

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдлрд╛рдпрджреЗ рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ - рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╛рдлреА рдХрдореА рдЖрдИ рд╣реИ, рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рджреЗрд░реАред
рдпрджрд┐ рд╣рдо рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреИрд╢рд┐рдВрдЧ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ


GWT рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Google рдХреЗ рдмрд╛рд╣рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХреЗ рдХреБрдЫ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рдЖрд╡реЗрджрди рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЧрдВрднреАрд░ рд╕реАрдорд╛рдПрдВ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЧрддрд┐ рдХреЛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рднреА рд╕рдВрддреБрд╖реНрдЯ рд╣реЛрдВред
рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдФрд░ рдЬреАрдбрдмреНрд▓реНрдпреВрдЯреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╡реЗ GWT RPC рдХреА рдЧрддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЬреЗрдПрд╕ рд╢реНрд░рд┐рдВрдХ, рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рджреЗрд╢реА рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡; рдпрд╣ рд╕рдВрдХрд▓рди рдЧрддрд┐ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓реЗрдЖрдЙрдЯ рдкрд░ рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рднреА рд╣реИред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЙрдкрдпреЛрдЧреА рд╕рдВрд╕рд╛рдзрди:
  1. static.googleusercontent.com/external_content/untrusted_dlcp/www.google.com/en//events/io/2011/static/presofiles/drfibonacci_devtools_high_performance_gwt.pdf
  2. dl.google.com/io/2009/pres/W_1115_GWTCanDoWhat.pdf
  3. dl.google.com/io/2009/pres/W_1230_MeasureinMilliseconds-PerformanceTipsforGoogleWebToolkit.pdf
  4. turbomanage.wordpress.com/2010/07/12/caching-batching-dispatcher-for-gwt-dispatch
  5. www.zackgrossbart.com/hackito/antiptrn-gwt
  6. www.zackgrossbart.com/hackito/antiptrn-gwt2
  7. www.zackgrossbart.com/hackito/gwt-rest
  8. habrahabr.ru/blogs/gwt/99614

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


All Articles