рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЗрд╕ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реИрдВрдбрд▓рд░ (рдХреЙрд▓рдмреИрдХ) рдХреА рдЖрд╕реНрдердЧрд┐рдд рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реИред JQuery рдХреЗ рд╕рдорд╛рди рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ, рд╢реНрд░рд╡реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╣реИрдВред рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдХрддрд╛рд░ рдореЗрдВ рдХрдИ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ, рдПрдХ рдХрддрд╛рд░ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдФрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдпрд╛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рдХреЛ "рдкреВрд░реНрдг" рдпрд╛ "рддреНрд░реБрдЯрд┐" рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг
рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рдЖрдкрдХреЛ рдПрдХ рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреБрдЫ рдмрд╛рд╣рд░реА рдХреЛрдб рджреЗрдВ рдЬреЛ рдЗрд╕реЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╣реБрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ рдЗрд╕реЗ рд╣реБрдХ рдирд╣реАрдВ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдФрд░ рдлрд┐рд░ рдХреЗрд╡рд▓ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЗрди рд╣реИрдВрдбрд▓рд░ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред
рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреАрди рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдПрдХ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рдмрдирд╛рдИ рдФрд░ рд╢реБрд░реВ рдХреА рд╣реИ, рдЬрд┐рд╕рдХреА рд╕реНрдерд┐рддрд┐ "рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ" рд╣реИред
- рдкрд░рд┐рдгрд╛рдореА рд╡рд╕реНрддреБ рдХреЛ рдмрд╛рд╣рд░реА рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╡рд┐рдзрд┐ рдореЗрдВ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ deferred.then () , deferred.done () рдФрд░ deferred.fail () рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣реИрдВрдбрд▓рд░ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: "рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг" рдФрд░ "рддреНрд░реБрдЯрд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг"ред
- рдХреЛрдб рдореЗрдВ рдХреБрдЫ рд╕реНрдерд┐рддрд┐ (рдШрдЯрдирд╛) рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣реИрдВрдбрд▓рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ: deferred.resolve () рд╣реИрдВрдбрд▓рд░ рдХреЛ "рд╕рдлрд▓ рд╕рдорд╛рдкрди" рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ "рдХрд┐рдпрд╛", deferred.reject () "рдЧрд▓рддрд┐рдпреЛрдВ" рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдХрд╣рддрд╛ рд╣реИред рдФрд░ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ "рд░рджреНрдж" рдХрд░ рджреЗрддрд╛ рд╣реИред
рдбрд┐рдлрд░реНрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ "рдХрддрд╛рд░" рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХрддрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ (рдЬрд┐рд╕рдиреЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЬреЛрдбрд╝рд╛ рдерд╛ рдЙрд╕реЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛)ред
рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ (рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдпрд╛ рд░рджреНрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ)ред рдпрджрд┐ "рд░рди" / "рддреНрд░реБрдЯрд┐" рд╣реИрдВрдбрд▓рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рд░рди" / "рд░рджреНрдж" рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рддреБрд░рдВрдд рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди / рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХреА рдмрд╛рд░-рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдЙрд╕рдХреЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓рдмреИрдХ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреНрдпрд╛ рд╕рдорд╛рдзрд╛рди () рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░) рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред
рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ "рдЬрдВрдЬреАрд░" рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рддрд░реАрдХреЗ (рд╕рднреА рдирд╣реАрдВ) рд╕реНрд░реЛрдд рд╡рд╕реНрддреБ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╡рд╕реНрддреБ рдХреЗ рдХрдИ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рдХрд░рдирд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣: deferred.done (callback1) .fail (callback2);
рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди
deferred.done (рдХрд┐рдП рдЧрдП рдХреЙрд▓рдмреИрдХ)
рдПрдХ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рддрдм рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ "рдХрд┐рдП рдЧрдП" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╛рддреА рд╣реИ
deferred.fail (рдЕрд╕рдлрд▓)
рдПрдХ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рддрдм рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ "рд░рджреНрдж" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ
deferred.then (рдХрд┐рдП рдЧрдП рдХреЙрд▓рдмреИрдХ, рдЕрд╕рдлрд▓ рдХреЙрд▓рдмреИрдХ)
рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИ, deferred.done (didCallbacks) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ редfail (рдЕрд╕рдлрд▓ рдХреЙрд▓рдмреИрдХ)
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рддреАрди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд░рдгрд┐рдпрд╛рдБ, рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
deferred.resolve (рдЖрд░реНрдЧ)
"рдХрд┐рдпрд╛ рдЧрдпрд╛" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдХрд┐рдП рдЧрдП рдХреЙрд▓рдмреИрдХ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЖрд░реНрдЧ рдкреИрд░рд╛рдореАрдЯрд░ (рдХреЙрдорд╛ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЧрдгрдирд╛) рдХрд╣рддрд╛ рд╣реИ
deferred.reject (args)
рд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ "рд░рджреНрдж" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рд╕рднреА рд╡рд┐рдлрд▓ рдХреЙрд▓рдЕрд░реНрдбреНрд╕ рд╣реИрдВрдбрд▓рд░реНрд╕ рдХреЛ рдЖрд░реНрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рджреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣реИрдВрдбрд▓рд░ рдХреЗ рдХреЙрд▓ (рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░) рдХрд╛ рд╕рдВрджрд░реНрдн рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ (рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрд╡рдпрдВ рд╣реА рд╣реЛрдЧрд╛ рдпрджрд┐ рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) (рдХреНрдпрд╛ рдЖрд╕реНрдердЧрд┐рдд рдкреНрд░рдХреНрд╖реЗрдкрдг рд╣реИ), рдмрд╛рдж рдореЗрдВ deferred.promise () рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ)ред рдпрджрд┐ рдЖрдк рдПрдХ рдЕрд▓рдЧ рдХреЙрд▓ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
deferred.resolve рдЗрд╕рдХреЗ рд╕рд╛рде (рд╕рдВрджрд░реНрдн, args)
deferred.rejectWith (рд╕рдВрджрд░реНрдн, args)
рд╡рд┐рдзрд┐рдпрд╛рдБ рдкреВрд░реА рддрд░рд╣ рд╕реЗ .resolve (args) рдФрд░ .reject (args) рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ, рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдЗрд╕ рдХреАрд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗ
рдЖрдк рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
deferred.isResolved ()
deferred.isRejected ()
рд╡рд╕реНрддреБ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддрд░реАрдХреЗ рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рд╣реЛрддреЗ рд╣реИрдВред рдЬрд┐рд╕ рд╕рдордп рд╣реИрдВрдбрд▓рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдЕрдВрддрд┐рдо рдЕрднреА рддрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдЗрд╕реА рдкрджреНрдзрддрд┐ рд╕рд╣реА рд╣реЛ рдЬрд╛рдПрдЧреАред
Deferred.promise () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреНрд░рдХреНрд╖реЗрдкрдг рдмрдирд╛рдирд╛
рдпрд╣ рд╡рд┐рдзрд┐ рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ "рдкреНрд░реЛрдЬреЗрдХреНрд╢рди" рдмрдирд╛рддреА рд╣реИ рдФрд░ рд▓реМрдЯрд╛рддреА рд╣реИ - рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рддрд░рд╣ рдХреА рдХреЙрдкреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╕реНрдЯреЗрдЯ рдЪреЗрдХ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред рдпрд╛рдиреА рд╣рдореЗрдВ рдПрдХ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ рдореВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рдХреА рдПрдХ рд╣реА рдХрддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдореВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдореВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдкреНрд░рдХреНрд╖реЗрдкрдг рдмрдирд╛рдирд╛ рддрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдмрд╛рд╣рд░реА рдХреЛрдб рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдЕрдирдзрд┐рдХреГрдд рдХреЙрд▓рд┐рдВрдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд░рдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рдмрдирд╛рдирд╛
рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ: $ .Deferred () рд╡рд┐рдзрд┐ (рдирдпрд╛ рдХреАрд╡рд░реНрдб рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ рдпрд╛ рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП $ .when (args) рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред
$ред рдкрд╕рдВрджреАрджрд╛ (рджреБрд░реНрдЧрдВрдз)
рд╡рд┐рдзрд┐ рдПрдХ рдирдИ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рджреЗрддрд╛ рд╣реИред рдлрдВрдХ рддрд░реНрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ, рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рд░реНрдорд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реЗ рд▓реМрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред рдлрд╝рдВрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░, рдЖрдк рдЗрд╕ рдФрд░ / рдпрд╛ рдкрд╣рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд░рдВрднреАрдХреГрдд рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред
$ .when (deferred1, deferred2, ...)
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЙрд╕рдХреЗ рд╕рднреА рддрд░реНрдХреЛрдВ (рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдУрдВ) рдХреЗ рдЗрд╕ рд░рд╛рдЬреНрдп рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж "рдирд┐рд╖реНрдкрд╛рджрд┐рдд" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЪрд▓реА рдЬрд╛рдПрдЧреА, рдпрд╛ рдЙрд╕рдХреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рддрд░реНрдХ рдХреЛ рд░рджреНрдж рдХрд░рддреЗ рд╣реА "рд░рджреНрдж" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЪрд▓реА рдЬрд╛рдПрдЧреАред
рдпрджрд┐ рдЖрдк рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рддрдм рд╣реА рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рд╕реНрдерд╛рди рд╣реИред
рдЙрджрд╛рд╣рд░рдг 1
$.when($.get( '/echo/html/' ), $.post( '/echo/json/' )).done( function (args1, args2) { alert( " " ); });
рдпрд╣ рдХреЛрдб "рд▓реЛрдбрд┐рдВрдЧ рдкреВрд░реНрдг" рд╕рдВрджреЗрд╢ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛, рдЬрдм рджреЛрдиреЛрдВ рдкреГрд╖реНрда рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХреЗрддрд┐рдд рдмреНрд▓реЙрдХ рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдпрджрд┐ рдПрдХ рдЧреИрд░-рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рдХреЛ $ .when () рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдп рдкрд╣рд▓реЗ рд╣реА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рд╡рд┐рдзрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реЗрд╖ рддрд░реНрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реИред
рдЬрдм $ .when () рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЙрд▓ рд╕рдВрджрд░реНрдн (рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░) рджреНрд╡рд╛рд░рд╛ "рдирд┐рд╖реНрдкрд╛рджрд┐рдд" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯрд░ рдХреЛ рдЕрдиреБрдорд╛рдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ $ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рд╕рдВрдЧрдд рддрд░реНрдХ рдпреБрдХреНрдд рддрд░реНрдХ рд╣реИрдВрдбрд▓рд░ рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред .when () рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдпрд╛ рдПрдХ рддрд░реНрдХ рд╕реНрд╡рдпрдВ, рдпрджрд┐ рдПрдХ)ред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, args1 рдкрд╣рд▓реЗ ajax рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд╕рдлрд▓рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХрд╛ рд╕рд░рдгреА рд╣реИ, рдФрд░ args2 рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рд╣реИред
$ .Ajax () рдореЗрдВ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
JQuery 1.5 рдореЗрдВ, рдЕрдЬрд╛рдХреНрд╕ рдЗрдВрдЬрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдм $ .ajax () рд╡рд┐рдзрд┐ рдФрд░ рдЗрд╕рдХреЗ рдЫреЛрдЯреЗ рд╕рдВрд╕реНрдХрд░рдг рднреА рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдХрдИ рд╣реИрдВрдбрд▓рд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдШрдЯрдирд╛рдУрдВ (рд╕рдлрд▓ рдпрд╛ рдЧрд▓рддреА рд╕реЗ) рдХреЛ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред
рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ $ .ajax (), $ .get (), $ .post (), $ .getScript (), $ .getJSON (), рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░рдХреНрд╖реЗрдкрдг рд╣реИ, рдЕрд░реНрдерд╛рддред рдЗрд╕рдореЗрдВ рдРрд╕реЗ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдФрд░ $ .when () рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рд░реНрдердХ рд╢рдмреНрдж рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдирд╛рдо рд╕реЗ ajax рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ:
- deferred.success = deferred.done - рдПрдХ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝реЗрдВ
- deferred.error = deferred.fail - рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝реЗрдВ
- deferred.complete - рдПрдХ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЬреЛрдбрд╝реЗрдВ (рдЪрд╛рд╣реЗ рд╡рд╣ рд╕рдлрд▓ рд╣реЛ рдпрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛ), рдЗрд╕реЗ рд╕рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝реЗ рдЧрдП рд╕рднреА рд╣реИрдВрдбрд▓рд░ рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ / рддреНрд░реБрдЯрд┐ рдпрд╛ рдЕрд╕рдлрд▓рддрд╛
рд░реЛрдЪрдХ рддрдереНрдп
$ .When () рд╡рд┐рдзрд┐, рдЬрдм рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдирдХреЗ рддрд░реНрдХреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреА рд╣реИ, рддреЛ .promise () рд╡рд┐рдзрд┐ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕реА рдХреЛрдИ рд╡рд┐рдзрд┐ рд╣реИ, рддреЛ "рд╡рд╛рдо" рд╡рд╕реНрддреБ рдХреЛ рднреА рдЕрд╡рд╣реЗрд▓рдирд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдмрдЧ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬрдм рдЗрд╕ рддрд░рд╣ рдХреА "рдмрд╛рдИрдВ" рд╡рд╕реНрддреБрдУрдВ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдирд┐рд╖реНрдкрд╛рджрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
JQuery (jquery-git.js) рдХреЗ рдирд╡реАрдирддрдо рд╡рд┐рдХрд╛рд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рднреА .invert () рд╡рд┐рдзрд┐ рд╣реИ, рдЬреЛ .promise () рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреА рд╣реИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде "рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд": рдХрд┐рдпрд╛ <=> рд╡рд┐рдлрд▓, isResolved <ред => рдЕрд╕реНрд╡реАрдХреГрдд, рд╡рд╛рджрд╛ <=> рдЙрд▓рдЯрд╛ рдХрд░реЗрдВред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрднреА рддрдХ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг
рдЙрджрд╛рд╣рд░рдг 1. (рдКрдкрд░ рджреЗрдЦреЗрдВ) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг 2
// 3
function test() {
var d = $.Deferred();
setTimeout( function () { d.resolve(); }, 3000);
return d.promise();
}
var t = test().done( function () { alert( " " ); });
//
setTimeout( function () {
alert( " " );
t.done( function () { alert( "" ); });
}, 5000);
* This source code was highlighted with Source Code Highlighter .
рдпрд╣ рдПрдХ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдбреЗрдореЛ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдПрдХ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╕реНрдерд┐рддрд┐ 3 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж "рдкреВрд░реНрдг" рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдмрд╛рд╣рд░реА рдХреЛрдб рдХреЛ рдЬрд╛рд░реА рдХреА рдЬрд╛рддреА рд╣реИред рдмрд╛рд╣рд░реА рдХреЛрдб рдореЗрдВ, рдПрдХ рд╣реИрдВрдбрд▓рд░ рддреБрд░рдВрдд рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЗрд╕реЗ 3 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж 5 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж, рдЬрдм рд░рд╛рдЬреНрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рдкреВрд░рд╛" рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рддреБрд░рдВрдд рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг 3
< div id ="d1" style ="width:100px;height:100px;background:red;" > 1 </ div >
< div id ="d2" style ="width:100px;height:100px;background:green;" > 2 </ div >
* This source code was highlighted with Source Code Highlighter .
//
var a1 = $.Deferred(),
a2 = $.Deferred();
$( '#d1' ).slideUp(2000, a1.resolve);
$( '#d2' ).fadeOut(4000, a2.resolve);
a1.done( function () { alert( 'a1' ); });
a2.done( function () { alert( 'a2' ); });
$.when(a1, a2).done( function () { alert( 'both' ); });
* This source code was highlighted with Source Code Highlighter .
рдпрд╣ рдХреЛрдб рдЕрдзрд┐рдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрдм рдЖрдкрдХреЛ рдХрдИ рдПрдирд┐рдореЗрд╢рди рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреБрдЫ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рддрддреНрд╡ рдкрд░ рдПрдХ рдПрдиреАрдореЗрд╢рди рдкреВрд░рд╛ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ (рдпрд╣ рднреА рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рд╕реНрд╡рддрдВрддреНрд░ рдПрдирд┐рдореЗрд╢рди рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдХреБрдЫ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ $ .when () рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред
рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ jsfiddle.net рд╕реЗрд╡рд╛ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдФрд░ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕рд╛рдордЧреНрд░реА:
blog.jquery.com/2011/01/31/jquery-15-released
api.jquery.com/category/deferred-object
www.erichynds.com/jquery/using-deferreds-in-jquery (рдЕрдиреБрд╡рд╛рдж: habrahabr.ru/blogs/jquery/112960 )
JQuery 1.5 рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдкреНрд░рд▓реЗрдЦрди