рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬреЛ рдХрд┐ jQuery рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╕рдВрд╕реНрдХрд░рдг 1.5 рд╕реЗ рдЖрд╕реНрдердЧрд┐рдд, "рд╕реНрдердЧрд┐рдд" (jQuery.Deferred), рд╕рд╛рде рд╣реА рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдеред ред
рдмреЗрд╢рдХ, рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ рд▓реЗрдЦ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рд╕реНрдердЧрд┐рдд / рд╡рд╛рджреЗ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдЬреНрдЮрд╛рди рдХрд╛ рдРрд╕рд╛ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдерд╛, рдЬреЛ рд╢реБрд░реБрдЖрддреА рддреМрд░ рдкрд░, рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рдХреЗ рдЕрдкрдиреЗ рдбрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдордЭ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдФрд░ рдХрджрдо рдЙрдард╛рдПрдВред ред рдореИрдВ рдЕрдкрдирд╛ рдФрд░ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдХреЗрдиреНрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрд╕реНрдердЧрд┐рдд рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд▓рд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдЗрд╕ рд╡рд╕реНрддреБ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдкрд░рд┐рд╕рд░ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдЯрд░реНрди рдкрд░ред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ
рддреЛ, рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рдирддреА рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреНрдп рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рддреБрд░рдВрдд рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ,
рдЕрдЬреАрдм рд╣реИ :
рд╕рдордХрд╛рд▓рд┐рдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ, рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ? рд╕реНрдерд╛рдкрд┐рдд рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП: рдпрд╣ рдХрд╣рдирд╛ рдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ "рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ" рд╣реИ, рд╣рдо рдЗрд╕ рддрдереНрдп рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдХреНрд╖рдг рдЬрдм рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЕрдВрдд рдЕрдЧрд▓реЗ рдПрдХ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдкрд▓ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдирдХрд╛ рдЕрдВрдд рдФрд░ рд╢реБрд░реБрдЖрдд
рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рд╣реИ ред
var result = readValueBy(key); console.info(result);
рдФрд░ "рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ" рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЖрдПрдЧрд╛, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕рдЯреАрдХ рд╕реНрдерд╛рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╣реЛрдЧрд╛ред рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реНрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди, рдпрд╛ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реБрдП рдЕрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХреЗ рдкрд░рд┐рдгрд╛рдоред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдг
рд╣рдо рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдФрд░ рдЬрдм рд╣рдореЗрдВ jQuery рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдХреЙрд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рд▓рд┐рдЦреЗрдВрдЧреЗ:
$.post("ajax/test.html", function( data ) { $( ".result" ).html( data ); });
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣
$.post()
рд╡рд┐рдзрд┐ (
рджреЗрдЦреЗрдВ ) рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ jQuery рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ - рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
$.ajax({ type: "POST", url: "ajax/test.html", data: data, success: function( data ) { $( ".result" ).html( data ); }, dataType: dataType });
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рдлрд▓рддрд╛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА
success
рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди, jQuery 1.5 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, ajax рддрд░реАрдХреЗ ($ .get, $ .post, $ .ajax) рдЙрдиреНрд╣реЗрдВ рд╣реИрдВрдбрд▓рд░ рдкрд╛рд╕ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ рди рдХреЗрд╡рд▓ рдПрдХ XMLHTTPRequest рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддреА рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ,
рдкреНрд░реЙрдорд┐рд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрддрд┐рднрд╛рд░рд┐рдд
рд╣реИ ред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (= рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз) рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ, рд╣рдо рд╕рдлрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рддреНрд░реБрдЯрд┐ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрджрд┐, рдФрд░ рдЬрдм рд╣рдо рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдЦреБрдж рдХреЛ рдПрдХ рддрдХ рд╕реАрдорд┐рдд рди рдХрд░реЗрдВред ред рд╣рдо рдПрдХ рдЪрд░ рдореЗрдВ рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
function api(key, data) { return $.post('ajax/' + key, data); }
... рдФрд░ рдмрд╛рдж рдореЗрдВ рд╣рдореЗрдВ рдЙрди рд╕рднреА рдХреЙрд▓рдмреИрдХ рдХреЛ "рд╣реИрдВрдЧ" рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
function addStandardHandlers(request, requestData, model) { request.done(function(data){
рдпрджрд┐ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рд╕реМ рдПрдХ рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╣рд░ рдЬрдЧрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдорд╛рди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдХреЗ рдХреЙрд▓ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХреЛрдб рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ "рд▓рдЯрдХрд╛" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдЕрдм рд╡рд╛рджреЗ рднреА рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЗрдЦреЗрдВред
рдЕрдиреНрдп рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ
рдЖрдЗрдП рдПрдХ рдХрджрдо рдкреАрдЫреЗ рд▓реЗрдВ рдФрд░ рдЙрди рдЕрдиреНрдп рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ рдЬрд┐рдирд╕реЗ рд╣рдореЗрдВ рдирд┐рдкрдЯрдирд╛ рд╣реИ:
- рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЫрд╡рд┐рдпрд╛рдВ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ (рдмрд╛рдж рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд┐рд╕ рдЖрдХрд╛рд░ рдХрд╛ рд╣реИ, рдФрд░ рдЪрд┐рддреНрд░ рд▓реЛрдб рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдХреБрдЫ рдирд┐рд░реНрдгрдп рд▓реЗрдирд╛)
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рддреИрдпрд╛рд░ рд░рд╛рдЬреНрдп рдХреА рдШрдЯрдирд╛ ( рдбреЛрдо рддреИрдпрд╛рд░ рдШрдЯрдирд╛)
- рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реНрдерд┐рддрд┐ рдХреА рд╢реБрд░реБрдЖрдд
- рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдФрд░ рдПрдХ рд╢реВрдиреНрдп рдордзреНрдпрд╛рдВрддрд░ рдкрд░ рд▓рд╛рдЧреВ рд▓рдВрдмреА рдЧрдгрдирд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛
- рдкреГрд╖реНрда рддрддреНрд╡реЛрдВ рдкрд░ рдПрдиреАрдореЗрд╢рди рдХрд╛ рдкреВрд░рд╛ рд╣реЛрдирд╛
- рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ ("рдУрдХреЗ / рд░рджреНрдж рдХрд░реЗрдВ") рдХрд╛ рдкрд░рд┐рдгрд╛рдо (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдХреЛ рд░рджреНрдж рдмрдЯрди, рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдХреНрд░реЙрд╕, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрд╡рд╛рдж рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдСрдкрд░реЗрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред
- рд╡рд┐рд╖рдо рдШрдЯрдирд╛рдУрдВ рдХреА рдПрдХ рд╕рд╛рде рдШрдЯрдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдирдкреБрдЯ рдлреЙрд░реНрдо рдореЗрдВ рд╕рднреА рд╢рд░реНрддреЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди, рд╕реВрдЪреА рд╕реЗ рд╕рднреА рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛) рдпрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдШрдЯрдирд╛ ("рдкреБрдирдГ рд▓реЛрдб рдХрд░реЗрдВ" рдмрдЯрди 10 рд╕реЗрдХрдВрдб рдХреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде)ред
Deferred рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ?
рдЖрдЗрдП рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдЬрдм рд╣рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓рдмреИрдХ рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд╕рд░рд▓ рдЕрдЬрд╛рдХреНрд╕ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рджреЗрдЦрд╛ рдерд╛):
- рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрддрд┐ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреЙрд▓рдмреИрдХ рдХреИрд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ?
- рдЗрд╕рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдЕрдкреЗрдХреНрд╖рд┐рдд рдШрдЯрдирд╛ рдХреА рдкрд╣рдЪрд╛рди рдХреИрд╕реЗ рдХрд░реЗрдВ?
- рдХреИрд╕реЗ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рдХреЙрд▓рдмреИрдХ рд╣реИрдВрдбрд▓рд░ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП?
рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рд╕рдордп рдкрд╣рд▓реЗ рд╣рдордиреЗ рдХрдИ рдСрдирд▓реЛрдб рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП
рдкрд╣рд▓реЗ рдмрд┐рдВрджреБ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдерд╛:
window.onload = (function(oldHandler){ return function(){ if (oldHandler) oldHandler();
рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреАрддреЗ рджрд┐рдиреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЖрдЬ рдХреЛрдИ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ) рдФрд░ рд╕рд┐рд░реНрдл $ .on (..) (jQuery рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рд░рдЦрдирд╛ рдЕрдЧрд░ рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдФрд░ $ .Deferred () рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ - рдЬрдм рд╣рдо рд╕рдм рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред (рдЬрд╛рдирдмреВрдЭрдХрд░ рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рдпрд╣ рдХрдерди рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред) рдареАрдХ рд╣реИ, "рдХрдИ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?" рдПрдХ рдФрд░ рд╕рд╡рд╛рд▓ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░рд╛ - рд░реЛрдЬрдЧрд╛рд░ рд╕рдВрдХреЗрддрдХ рдЫрд┐рдкрд╛рдПрдВ рдпрд╛ рд╕реНрдерд┐рддрд┐ рдкрд╛рда рдХреЛ рдмрджрд▓ рджреЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдореЙрдбрд▓ рдФрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдирд╛ рд╕рдм рдХреБрдЫ рдЭреЛрдВрдХрдирд╛ рдкрдбрд╝рддрд╛ рдерд╛, рдПрдХ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдзреНрд╡рдЬ рдЪрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдвреЗрд░ рджреНрд╡рд╛рд░рд╛
рджреВрд╕рд░рд╛ рдмрд┐рдВрджреБ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕ рдкрд░ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рд╢рд░реАрд░ рдмрдВрдж рдерд╛ред рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╛рдж рд╣реИ рдХрд┐ рд╣рдордиреЗ рдХреИрд╕реЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдХреИрд╕реЗ рдмрддрд╛рдпрд╛ рдЬрд╛рдП рдХрд┐
рдбреЛрдо рддреИрдпрд╛рд░ рдкрд╣рд▓реЗ рд╣реА рд▓реЛрдб рд╣реЛ рдЪреБрдХрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ
$(function(){ ... })
, рдЬрд┐рд╕реЗ рдЕрдм jQuery рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдХреЙрд▓рдмреИрдХ рддрдм рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм
рдбреЛрдо рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧ рдкреИрдЯрд░реНрди рд╕рд░рд▓ рд╣реИред рд╣реИрдВрдбрд▓рд░ рдХреЛ "рд╣реИрдВрдЧ рдЕрдк" рдХрд░реЗрдВред рдпрджрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рд▓реЗ рд╣реА рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рд╣реИрдВрдбрд▓рд░ рддреБрд░рдВрдд рдЪрд▓рддрд╛ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХреЗ рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рд╣реИрдВрдбрд▓рд░ (рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рд╣реИрдВрдбрд▓рд░) рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдЗрдП
рддреАрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рджреЗрдЦреЗрдВред рдЖрд╕реНрдердЧрд┐рдд рдХреЗ рд╕рд╛рде, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ
рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ,
рдЕрд╕рдлрд▓ - (рдЧрд▓рдд рдпрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд) рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдореВрд╣ рд╣реИ рдЬрд┐рд╕реЗ
рдХрд┐рд╕реА рднреА рдЫреЛрд░ ("рдкреНрд░реЗрдо") рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рд╕рдореВрд╣ рднреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рдСрдкрд░реЗрд╢рди рдХреА
рдкреНрд░рдЧрддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ $ .Deferred () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХреА рдЧрдИ рддреАрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХреАред
Deferred рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ
рдЖрдЗрдП рдЙрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░реЗрдВ рдЬрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЖрд╕реНрдердЧрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рддрдм Deferred рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВрдЧреЗред- рдЬрдм рд╣рдореЗрдВ рдХрд┐рд╕реА рд░рд╛рдЬреНрдп рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдФрд░ рдЙрд╕рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ / рдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рд╕рдВрдХреЗрддрдХ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рдд рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдкрд╣рд▓реА рд╢рд░реНрдд рд╣реИред
- рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрдм рд╣рдо рдПрдХ рд▓рдВрдмреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рд╕рд╛рдкреЗрдХреНрд╖ рд╕реНрдерд┐рддрд┐ рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди / рдкреВрд░реНрдгрддрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВред рдЖрд╕реНрдердЧрд┐рдд рдЖрдкрдХреЛ рд░рд┐рд╕реЗрдкреНрд╢рди рдХреА рд╡рд┐рдзрд┐ рдФрд░ рдмрд╛рдж рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рд╕реЗ рдбреЗрдЯрд╛ / рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ "рдЕрдирдЯрд╛рдЗрдЯреА" рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдХреА рдкрд╣рдЪрд╛рди рд╕реНрдерд┐рддрд┐ рдХреА
рд╢реБрд░реБрдЖрдд рд╣реИ , рдФрд░ рди рдХреЗрд╡рд▓ рдЙрд╕ рдХреНрд╖рдг рдкрд░ рдЬрд┐рд╕ рдкрд░ рдпрд╣ рд╣реБрдЖред рдпрд╣ jQuery рдореЗрдВ рдирд┐рдпрдорд┐рдд
рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рддрдВрддреНрд░ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдПрдХ рдШрдЯрдирд╛ рд╣реБрдИ, рдЬрд┐рд╕реЗ рд╣реИрдВрдбрд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рднреВрд▓ рдЧрдПред рдЬрдм рддрдХ рд╣рдо рдЖрд╕реНрдердЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐, рдЖрд╕реНрдердЧрд┐рдд рдХрд░рдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИред
рджреВрд╕рд░рд╛ рдЖрдзрд╛рд░ред рдЖрдЗрдП рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
$.post("ajax/cart", function( data1 ) {
рдкрд╣рд▓рд╛ рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреВрд╕рд░рд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ - рдмрд╛рдж рд╡рд╛рд▓реЗ, рдЖрджрд┐ред рдХреЗрд╡рд▓ рддреАрди рдкреНрд░рд╢реНрди рд╣реИрдВ рдФрд░ рддрд░реНрдХ рдХреЗрд╡рд▓ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рд╕рд┐рджреНрдз рдПрдВрдЯреАрдкреИрдЯрд░ "рдкрд┐рд░рд╛рдорд┐рдб рдХрд╛ рдХрдпрд╛рдордд" (рдХрдпрд╛рдордд рдХрд╛ рдкрд┐рд░рд╛рдорд┐рдб) рд╣реИред
рдЬрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореИрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдЖ рдерд╛, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛рд░реНрдп рдЧреБрдкреНрдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рднреБрдЧрддрд╛рди рдкреНрд░рдгрд╛рд▓реА рд╕рд╛рдЗрдЯ (рдЬрд┐рд╕реЗ CGI рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЙрд╕реЗ рдЕрд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) рдХреЛ "рд░реИрдк" рдХрд░рдирд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдореЗрдВ рдЗрд╕реЗ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ, рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рд╡рд╛рд▓ рд╣реА рдирд╣реАрдВ рдерд╛ - рдПрдХ рд╕реБрдВрджрд░ рдкреГрд╖реНрда рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдкрд░, рдЬреЛ "рдЫрд╛рдпрд╛ рдореЗрдВ" рд╣реИ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП- рдФрд░ рдмрд╛рдж рдХреЗ рдЕрдиреБрд░реЛрдз, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг (рдХрд╛рд░реНрдЯ рдкреЗрдЬ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдирд╛, рдорд╛рд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рднреЗрдЬрдирд╛, рдПрдХ рдлреЙрд░реНрдо рднреЗрдЬрдирд╛, рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдкреГрд╖реНрда рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдПрдХ рдкрддрд╛ рджрд░реНрдЬ рдХрд░рдирд╛, рджреВрд╕рд░рд╛ рдлреЙрд░реНрдо рднреЗрдЬрдирд╛, рднреБрдЧрддрд╛рди рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдирд╛ ..) рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИред рдпрд╣ рдмреБрд░рд╛ рд╣реИред рдореБрдЭреЗ рд╡рд┐рд╡рд░рдг рдпрд╛рдж рдХрд░рдиреЗ рдореЗрдВ рд╢рд░реНрдо рдЖрддреА рд╣реИред рдПрдХ рд╕рдордп, рдореИрдВ рд╡рд╣рд╛рдВ рдЬрд╛рдиреЗ рдФрд░ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдХрд░рдиреЗ рд╕реЗ рдбрд░рддрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ "рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред" рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдмреБрд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рднреБрдЧрддрд╛рди рддрд░реНрдХ рдпреБрдХреНрдд рд╡рд┐рдзрд┐ рдореЗрдВ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рдЫрд╣ рдпрд╛ рд╕рд╛рдд рд╕реНрддрд░ рдереЗ рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЛ рджрд╕ рдЧреБрдирд╛ рдКрдВрдЪрд╛рдИ рддрдХ рдлреИрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕ рдирд┐рд░реНрдгрдп рдХреЗ рд╕рд╛рде, рдХреЗрд╡рд▓ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдФрд░ рд╕реАрдЬреАрдЖрдИ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЕрд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реАрдЬреАрдЖрдИ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдорд╛рдореВрд▓реА рд▓рд╛рдн рдерд╛ред рдЕрдм рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдгрдп рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░реВрдВрдЧрд╛ (рдЪрд▓реЛ рдпрд╣ рджрд┐рдЦрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЦрд░реАрджрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреА рдирдХрд▓ рдХрд░рдирд╛ "рдареАрдХ рд╣реИ")?
рдкрд╣рд▓реЗ, рдореИрдВ рд╡рд┐рдзрд┐ рдХреЗ рддрд░реНрдХ рдХреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рддреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдореБрдЭреЗ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ:
function purchaseStep01_CartDataRequestFor(input) { return $.post("ajax/cart", input); } function purchaseStep02_UpdateShippingInfoRequestFor(input) { return $.post("ajax/shipping", input); } function purchaseStep03_SubmitPaymentDetailsRequestFor(input) { return $.post("ajax/payment", input); }
рджреВрд╕рд░реЗ, рдпрд╣ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
... рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реНрдХред рд╣рдо рдЙрдкрд░реЛрдХреНрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рддрд░реНрдХ рдХреЛ рд╕рдВрдЧрдд рдХрд░реЗрдВрдЧреЗ:
рдЗрд╕ рдирд┐рд░реНрдгрдп рдХреЗ рд╡рд┐рдкрдХреНрд╖:
- рддрд░реНрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рдХрд╛рд░рдг рдХреЛрдб рдЕрдзрд┐рдХ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ
- рдЖрдкрдХреЛ рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдХреИрд╕реЗ
$.Deferred(..)
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдПрдХ-рдХреЗ-рджреВрд╕рд░реЗ рдХреНрд░рдо рдореЗрдВ рджреЛ рд╡рд╛рджреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╡рд┐рдзрд┐ - .then(..)
, рдФрд░ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЕрдВрджрд░ then
рдЖрдкрдХреЛ рд╡рд╛рджрд╛ рджреЗрдирд╛ рдпрд╛рдж рд╣реЛрдЧрд╛ред рдпрд╛рдиреА handleResponseData
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ return
рдбрд╛рд▓рдирд╛ рди рднреВрд▓реЗрдВ, рдЬреЛ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред
рдкреЗрд╢реЗрд╡рд░реЛрдВ:
- рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рддрд░реНрдХ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реНрдХ
- рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдСрдкрд░реЗрд╢рди рдХреА рд╕рдлрд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рддрд░реНрдХ рдХрд╛ рд╕реНрдерд╛рди рдФрд░ рдмрд╛рд╣рд░ рд╕реЗ рдЗрд╕ рдирд┐рд░реНрдгрдп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ред
$.Deferred(..).promise()
рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ $.Deferred(..).promise()
handleResponseData()
ред - рдЕрдкрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдЪрд░рдгреЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдСрдкрд░реЗрд╢рди рдХреА рд╕рдлрд▓рддрд╛ рдкрд░ рдирд┐рд░реНрдгрдп рддрд░реНрдХ рдХрд╛ рд╕реНрдерд╛рдиред
def.reject(..)
рдХреЙрд▓ рдХреЛ handleResponseData()
рдЕрдВрджрд░ handleResponseData()
ред рдСрдкрд░реЗрд╢рди рдХреЛ рди рдХреЗрд╡рд▓ рдЕрд╕рдлрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рд╕рд░реНрд╡рд░ рдиреЗ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛, рдмрд▓реНрдХрд┐ рдЕрдЧрд░ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрд░реНрдпрд╛рдкреНрдд рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдпрд╛ред рдФрд░ рдпрд╣ рднреА, рдЕрдЧрд░ рдбреЗрдЯрд╛ рдЗрд╕рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг ( catch(e){ .. }
рд╢рд╛рдЦрд╛) рдХреЗ рдмрд╛рдж рд╕рддреНрдпрд╛рдкрди рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЕрдм $ .Deferred рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВред - рддрд░реНрдХ рдХреА рдмреЗрд╣рддрд░ рд╕рдВрд░рдЪрдирд╛, рдЗрд╕рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЛ рдХрдо рдХрд░рдирд╛, рд╕рдорд░реНрдерди рдореЗрдВ рд╡реГрджреНрдзрд┐ред
рдХреБрдЫ рддрд░реНрдХ рджреЗрдВрдЧреЗ рдХрд┐ рдлрд╛рдпрджреЗ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рджреЛрдиреЛрдВ рдХреЛ рдкрдЫрд╛рдбрд╝рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд░рд┐рд╕рд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рдЖрдЧреЗ рдЪрд▓рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджреЛрдВ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реВрдВред
рд╡рд╛рджрд╛
рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рд╕реЗ рд▓рд┐рдВрдХ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реА рдирд╣реАрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрднреА-рдХрднреА рдпрд╣ рд╣реЛрддреА рд╣реИ) рдФрд░ рд╕рднреА рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ "рдпрд╣ рдмрддрд╛рдиреЗ" рдХреА рдХреНрдпрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реБрдЖред рд▓реЗрдХрд┐рди рдЗрд╕ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╡рд╛рджрд╛ рд╡рд╕реНрддреБ рдпрд╛ "рд╡рд╛рджрд╛", рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "рд╕реБрдирдиреЗ" рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рджреЗрддрд╛ рд╣реИред (рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдкрдардиреАрдп рд╡рд╕реНрддреБ рдХреЛ рдлреНрдпреВрдЪрд░ (рднрд╡рд┐рд╖реНрдп) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╡рд╛рджрд╛ $ рд╣реИред рдбреЗрдбрд░реЗрдб jQuery рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рднреНрд░рдорд┐рдд рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВред) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╢рдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдпрд╣ рдЕрд▓рдЧрд╛рд╡ рдХрдИ рдЕрдЬреАрдм рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рдХреЛрдб "рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдирд╣реАрдВ рд╣реИ" рдпрд╣ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
var def = $.Deferred();
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХрд╛ рд╣реИ рдЖрд╕реНрдердЧрд┐рдд рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдЕрдкрдиреЗ рддрд░реНрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реИ:
$.Deferred(function(def){
рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЙрдкрдпреЛрдЧ рдХреЛ рддреБрд░рдВрдд "рднреВрд▓" (рдмрд┐рдирд╛ рднреВрд▓ рдХреЗ) рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
.promise()
рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рд╡рд╕реНрддреБ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдгред рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдлрд▓ рд╕рдорд╛рдкрди рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред
function doneTimeout(timeout) { return $.Deferred(function(def){ window.setTimeout(def.resolve, timeout); }).promise(); }
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рд╡рд╛рджреЗ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ред рдЙрджрд╛рд╣рд░рдгред
рдЙрджрд╛рд╣рд░рдг
рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдореИрдВ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдкреНрд░рддрд┐рдлрд▓рд┐рдд / рд╡рд╛рджрд╛ рдХрд░рдиреЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдорд░реНрде рдерд╛ рдФрд░
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рд▓реАред
рдЪрд┐рддреНрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореИрдВ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рди рдХреЗрд╡рд▓ рдпрд╣ рдкрд╣рдЪрд╛рдирдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХрд┐ рдЪрд┐рддреНрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рднреА:
var loadImage = createCache(function(defer, url) { var image = new Image(); function cleanUp() { image.onload = image.onerror = null; } defer.then( cleanUp, cleanUp ); image.onload = function() { defer.resolve( url, { width: image.width, height: image.height }); }; image.onerror = defer.reject; image.src = url; });
рддреИрдпрд╛рд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рдШрдЯрдирд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг
рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдКрдкрд░
$(function(){.. })
рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереАред рдореБрдЭреЗ рдХреЗрд╡рд▓ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╢реБрджреНрдз рд░реВрдк рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рддрддреНрдкрд░рддрд╛ рдХрд╛ рд╡рд╛рджрд╛ рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП:
var domReadyPromise = $.ready.promise();
рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реНрдерд┐рддрд┐ рдХреА рд╢реБрд░реБрдЖрдд
рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЯрд╛рдЗрдордЖрдЙрдЯ рдЙрджрд╛рд╣рд░рдг рдХреА рдЬрд╛рдВрдЪ рдХреА рд╣реИ, рдЬреЛ рдХреА рдШрдЯрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдлрд▓ рд╕рдорд╛рдкрди рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИ,
doneTimeout()
ред рд▓реЗрдХрд┐рди рдЕрдм рд╣рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд░рдХреЗ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдкреВрд░реА рд╣реБрдИред рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ:
function failTimeout(timeout) { return $.Deferred(function(def){ window.setTimeout(def.reject, timeout); }).promise(); }
рд╣рдо рдЙрд╕ рдмрдЯрди рдХреЗ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рджрдмрд╛рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ 10 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдпрд╣ рдЦреБрдж рд╣реА рдкреНрд░реЗрд╕ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдХреНрдпрд╛ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ? рдпрд╣ рдХреМрди рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реИ?
var timeToSubmit = $.Deferred(function(def){ doneTimeout(10000).done(def.resolve); $('.submissionButton').one('click', function(){ def.resolve(); return false; }); }).promise(); timeToSubmit.done(function(){
рдкреГрд╖реНрда рддрддреНрд╡реЛрдВ рдкрд░ рдПрдиреАрдореЗрд╢рди рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
рдХрднреА-рдХрднреА рдореБрдЭреЗ рдЙрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рд╕рд░реНрд╡рд░ рд╕реЗ рдбреЗрдЯрд╛ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рд╣рдо рдзреНрдпрд╛рди рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкреЙрдк-рдЕрдк рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рддрдм рд╣рдо рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдмреБрдЭрд╛ рджреЗрдВрдЧреЗред рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рдмрдВрдбрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ (рдпрд╣ рдиреЛрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдЙрджрд╛рд╣рд░рдг рд╣реИ):
function animationPromise($element){ return $.Deferred(function(def){ $element.fadeIn( 10000 , def.resolve ); }).promise(); }
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ jQuery рддрддреНрд╡ рдПрдХ рд╡рд╛рджрд╛ () рдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдПрдиреАрдореЗрд╢рди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ:
function animationPromise($element){ return $element.fadeIn( 10000 ).promise(); }
рдЖрдк рдЗрд╕ рддрд░рд╣ рдПрдиреАрдореЗрд╢рди рдХреЗ рдЕрдВрдд рддрдХ "рд╕реБрди" рд╕рдХрддреЗ рд╣реИрдВ:
animationPromise($('#foo')).done(function(){ console.log('Animation is finished'); });
рдпрд╛ рдмрд╕:
$element.fadeIn( 10000 ).promise().done(function(){ console.log('Animation is finished'); });
рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЛ рджреВрд╕рд░реЗ рдкрд░ рдПрдХ рдПрдиреАрдореЗрд╢рди "рд╕реНрдЯреНрд░рд┐рдВрдЧ" рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд┐рдпрдорд┐рдд рддрд░реАрдХреЗ рд╣реИрдВ:
$element.fadeIn( 10000 ).fadeOut( 10000 );
рдореЛрдбрд▓ рд╕рдВрд╡рд╛рдж рдХрд╛ рд░рдЦрд░рдЦрд╛рд╡
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬреЛ рдкреГрд╖реНрда рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдмрд╛рддрдЪреАрдд рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрднреА-рдХрднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЯреНрд╡рд┐рдЯрд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдореЗрдВ рдореЙрдбрд▓ рд╡рд┐рдВрдбреЛ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ (
рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ )ред рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ - "рджрд┐рдЦрд╛рдУ" рдФрд░ "рдЫрд┐рдкрд╛рдирд╛", рдРрд╕реА рдШрдЯрдирд╛рдПрдБ рд╣реИрдВ "рдЦрд┐рдбрд╝рдХреА рдЦреБрд▓реА рд╣реИ", "рдЦрд┐рдбрд╝рдХреА рдЫрд┐рдкреА рд╣реИ"ред рд▓реЗрдХрд┐рди рд╣рдо, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреИрд╕реЗ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдХреНрдпрд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ? рдпрд╛рдиреА
рдирд╣реАрдВ рдПрдХ рд▓рд┐рдВрдХ рдпрд╛ рдмрдЯрди, рд╡рд╣ рд▓реЗ рд▓рд┐рдпрд╛, рдФрд░ рд╡рд╣ рдХрд╣рд╛ рдЕрдкрдиреА рдХрд╛рд░реНрд░рд╡рд╛рдИ? рдХреНрдпрд╛ рдЙрдирдХреА рдкрд╕рдВрдж рдпреЛрдЬрдирд╛рдмрджреНрдз рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдлрд▓ рд╕рдорд╛рдкрди рдпрд╛ рдЙрд╕рдХреЗ рд░рджреНрдж рд╣реЛрдиреЗ рдХреА рдУрд░ рд▓реЗ рдЧрдИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдХреЛ рд░рджреНрдж рдХрд░реЗрдВ рдмрдЯрди рдХреЗ рд╕рд╛рде рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдХреНрд░реЙрд╕ рдХреЗ рд╕рд╛рде, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрд╡рд╛рдж рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдСрдкрд░реЗрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИредрдореИрдВ рдкрд╛рдардХ рдХреЛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдЯреНрд╡рд┐рдЯрд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рд░реИрдкрд░ рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ, рдпрджрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд┐рд╖рдп рдЙрд╕рдХреЗ рдХрд░реАрдм рд╣реИред рдФрд░ рдореИрдВ рджреВрд╕рд░реА рдмрд╛рд░ рдЕрдкрдирд╛ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛редрдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрдореНрдореАрджреЛрдВ рдХрд╛ рдореЗрд▓
рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдКрдкрд░, рд╣рдордиреЗ рджреЛ рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рдХреЗ рдЗрдВрддрдЬрд╛рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдорд╛рдирд╛: рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдпрд╛ рдПрдХ рдмрдЯрди рджрдмрд╛рдХрд░ред рдРрд╕реА рд╣реА рдХрдИ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд╣рд╛рдВ рдХрдИ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдШрдЯрдирд╛ рдмрди рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЙрд╕рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИредрдЖрдо рддреМрд░ рдкрд░, jQuery рд╣рдореЗрдВ рдПрдХ рдРрд╕рд╛ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рджреЛрдВ рдХреЛ$.when()
рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ , рдФрд░ рдПрдХ рдирдпрд╛ рд╡рд╛рджрд╛ рджреЗрддрд╛ рд╣реИ , рдЬрд┐рд╕рдХреА рд╕рдлрд▓рддрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рджреЗ рдХреЗ рдкреВрд░реНрдг рд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИ рдЬреЛ рдЗрд╕реЗ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдХрдо рд╕реЗ рдХрдо рд╡рд┐рдлрд▓ рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд▓реЙрдЬрд┐рдХрд▓ рдСрдкрд░реЗрд╢рди рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдХреЗрд╡рд▓ TRUE (= рд╕рдлрд▓рддрд╛) рд╣реИ, рдЬрдм рд╕рднреА рдСрдкрд░реЗрд╢рдиреНрд╕ TRUE рднреА рд╣реЛрддреЗ рд╣реИрдВ, рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ - FALSE (= рд╡рд┐рдлрд▓рддрд╛)редрдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рддрд╛рд░реНрдХрд┐рдХ рдпрд╛ рдХрд╛ рдПрдирд╛рд▓реЙрдЧ рд╣реИред рдпрд╛рдиреА
рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╡рд┐рдзрд┐, рд╡рд╛рджреЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди, рдЬреЛ рдСрдкрд░реЗрд╢рди рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреА рд╣реИ рдпрджрд┐ рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рд╣рд░ рдХреЛрдИ рдЕрдкрдиреЗ рд╡рд╛рджреЗ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ рд╡рд┐рдлрд▓рддрд╛ рднреА рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рдФрд░ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдСрдкрд░реЗрд╢рди рд╕рдлрд▓рддрд╛ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИредрдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдХреЗрдЪ рдпрд╣рд╛рдВ рджреВрдВрдЧрд╛:
рд▓рдВрдмреА рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг
рдирд┐рд░рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ - рдЬреЛ рд▓реЛрдЧ рднрд░ рдЖрдПрдВрдЧреЗ рд╡реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВрдЧреЗ - рдПрдХ рд╡рд┐рд╢реЗрд╖ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрд┐рд╕ рдЪрдХреНрд░ рдореЗрдВ рдЧрдгрдирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрдЯреНрд░реЗрдЯрд░ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдмрд╛рд╣рд░ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЗрдЯреНрд░реЗрдЯрд░ рд╕реНрд╡рдпрдВ рдмрдирддрд╛ рд╣реИ, рдФрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рдХреЙрд▓ рджреЛрд╣рд░рд╛рдПрдВред рдЬрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ рддреЛ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╡рд╛рджреЗ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИредрдореИрдВ рдкрд╛рдардХ рдХреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рдПрдХ рдЕрд▓рдЧ рдиреЛрдЯ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВредрдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдВрдмрдВрдзрд┐рдд рдХрдбрд╝рд┐рдпрд╛рдБ