рд╢реЗрдбреНрдпреВрд▓рд░.рдЬреЗрдПрд╕ рдореЗрдВ,
function unstable_shouldYield() {
return (
!currentDidTimeout &&
((firstCallbackNode !== null &&
firstCallbackNode.expirationTime < currentExpirationTime) ||
shouldYieldToHost())
);
}
рдЕрд╕реНрдерд┐рд░_рд╢реЛрд▓реНрдб рдпреАрд▓реНрдб () рд╕рд╣реА рд╣реИ рдЬрдм currentDidTimeout рдЧрд▓рдд рд╣реИ рдФрд░ shouldYieldToHost () рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ?
shouldYieldToHost = function() {
return frameDeadline <= getCurrentTime();
};
shouldYieldToHost() рд░рд┐рдЯрд░реНрди рдЯреНрд░реВ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЕрд╡рдзрд┐ рдореЗрдВ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИ
currentDidTimeout рдЧрд▓рдд рд╣реИ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╢реЗрдбреНрдпреВрд▓ рдЯрд╛рдЗрдордЖрдЙрдЯ рдирд╣реАрдВ рд╣реИ
рдЙрдирдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рд╕рдВрдмрдВрдз рд╣реИ, рдЕрд╕реНрдерд┐рд░_рд╢реЛрд▓реНрдб рдпреАрд▓реНрдб () рдЙрди рдкрд░ рдХреНрдпреЛрдВ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ?
рд╣рдо рд╕рдордп-рд╕рдордп рдкрд░ рдореЗрдЬрдмрд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЖрддреЗ рд╣реИрдВ - рдкреНрд░рддреНрдпреЗрдХ 16ms рдпрд╛ рддреЛ - рдмреНрд░рд╛рдЙрдЬрд╝ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╕рд╣рд┐рдд рдЖрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред frameDeadline
рд╡рд╣ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ (рдореВрд▓ рд░реВрдк рд╕реЗ now() + 16ms
рдЬреИрд╕реЗ рдХреБрдЫ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП shouldYieldToHost рдЙрд╕ рд╕рдордп рдмреАрдд рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╣реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо requestIdleCallback рдФрд░ requestAnimationFrame рдХреЗ рдХреБрдЫ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдЕрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХреЛ рдЬрд▓реНрдж рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХреЗрдВред
рдЖрджрд░реНрд╢ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдЗрди рдЫреЛрдЯреЗ 16ms рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рд╕рднреА рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рд╣реЛ рд░рд╣реА рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрдп "рднреВрдЦрд╛" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЫреЛрдЯреЗ рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рджреВрд╕рд░рд╛ рдЪреЗрдХ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рд▓рдВрдмрд┐рдд рд░реЗрдВрдбрд░ рдпрд╛ рд╕реНрдЯреЗрдЯ рдЕрдкрдбреЗрдЯ рдореЗрдВ "рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп" рд╣реЛрддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдХрд╣реАрдВ 100ms рд╕реЗ 5000ms рддрдХ) - рдпрджрд┐ рд╡рд╣ рд╕рдордп рд░реЗрдВрдбрд░ рдлрд┐рдирд┐рд╢рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдЕрдкрдбреЗрдЯ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЕрдкрдбреЗрдЯ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рдПрдВред
рд╣рдо рдЙрд╕реА рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЯрд╛рдЗрдорд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде)ред рдпрджрд┐ рд╡рд╣ рдЯрд╛рдЗрдорд░ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛ рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ currentDidTimeout
рд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдкрдЬ рдирд╣реАрдВ рджреЗрдВрдЧреЗред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо рдПрдХ рдирдП isInputPending
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреАрдЖрдИ (https://github.com/WICG/is-input-pending) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдп рдЬрд╛рд░реА рд░рдЦ рд╕рдХреЗрдВ рдФрд░ рдХреЗрд╡рд▓ рддрднреА рдЙрдкрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ рдЬрдм рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╣реЛ , рд╣рдореЗрд╢рд╛ рд╣рд░ 16ms рдкрд░ рдЙрдкрдЬ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдпред
рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдХреБрдЫ рдкреНрд░рд╢реНрди рд╣реИрдВ,
unstable_shouldYield()
рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╢реЗрдбреНрдпреВрд▓ рдореЗрдВ рдХрд╛рдо рдмрд╛рдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?activeFrameTime
рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ?firstCallbackNode.expirationTime < currentExpirationTime
рдХрдм рд╕рд╣реА рд╣реЛрдЧрд╛? рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рдХрд╛рдо рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИ?рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛рд░реНрдп рдХреЛ рдЕрд╕реНрдерд┐рд░_рд╢реЛрд▓реНрдб рдпреАрд▓реНрдб () рдХреЛ рдЕрдХреНрд╕рд░ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред (рд╣рдо рдЗрд╕реЗ рдкреЗрдбрд╝ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рдмрд╛рдж рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдХрд╣рддреЗ рд╣реИрдВред) рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдпрд╣ рдЭреВрдареА рд╡рд╛рдкрд╕реА рдХрд░реЗрдЧрд╛ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЪрд▓рддреЗ рд░рд╣реЗрдВ) рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ рд╕рдЪ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рд░реЛрдХрдирд╛ рд╣реЛрдЧрд╛ред
рд╣рд╛рдБред
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЕрдЧрд░ рдореМрдЬреВрджрд╛ рд░реЗрдВрдбрд░ рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдирдП, рдЙрдЪреНрдЪ-рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ рдХрд╛рдо рд╕рдВрд▓рдЧреНрди рд╣реИрдВ рддреЛ рд╕реНрдерд┐рддрд┐ рд╕рд╣реА рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рд╕рдЪ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдЙрд╕ рдХрд╛рд░реНрдп рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХреЗрдВред
рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджредрддреБрдореНрд╣рд╛рд░реЗ рд▓рд┐рдП рд╡рд╛рдХрдИ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рдо рд╕рдордп-рд╕рдордп рдкрд░ рдореЗрдЬрдмрд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЖрддреЗ рд╣реИрдВ - рдкреНрд░рддреНрдпреЗрдХ 16ms рдпрд╛ рддреЛ - рдмреНрд░рд╛рдЙрдЬрд╝ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╕рд╣рд┐рдд рдЖрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред
frameDeadline
рд╡рд╣ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ (рдореВрд▓ рд░реВрдк рд╕реЗnow() + 16ms
рдЬреИрд╕реЗ рдХреБрдЫ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП shouldYieldToHost рдЙрд╕ рд╕рдордп рдмреАрдд рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╣реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо requestIdleCallback рдФрд░ requestAnimationFrame рдХреЗ рдХреБрдЫ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдЕрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХреЛ рдЬрд▓реНрдж рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХреЗрдВредрдЖрджрд░реНрд╢ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдЗрди рдЫреЛрдЯреЗ 16ms рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рд╕рднреА рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рд╣реЛ рд░рд╣реА рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрдп "рднреВрдЦрд╛" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЫреЛрдЯреЗ рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рджреВрд╕рд░рд╛ рдЪреЗрдХ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рд▓рдВрдмрд┐рдд рд░реЗрдВрдбрд░ рдпрд╛ рд╕реНрдЯреЗрдЯ рдЕрдкрдбреЗрдЯ рдореЗрдВ "рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп" рд╣реЛрддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдХрд╣реАрдВ 100ms рд╕реЗ 5000ms рддрдХ) - рдпрджрд┐ рд╡рд╣ рд╕рдордп рд░реЗрдВрдбрд░ рдлрд┐рдирд┐рд╢рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдЕрдкрдбреЗрдЯ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЕрдкрдбреЗрдЯ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рдПрдВред
рд╣рдо рдЙрд╕реА рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЯрд╛рдЗрдорд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде)ред рдпрджрд┐ рд╡рд╣ рдЯрд╛рдЗрдорд░ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛ рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ
currentDidTimeout
рд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдкрдЬ рдирд╣реАрдВ рджреЗрдВрдЧреЗредрднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо рдПрдХ рдирдП
isInputPending
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреАрдЖрдИ (https://github.com/WICG/is-input-pending) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдп рдЬрд╛рд░реА рд░рдЦ рд╕рдХреЗрдВ рдФрд░ рдХреЗрд╡рд▓ рддрднреА рдЙрдкрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ рдЬрдм рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╣реЛ , рд╣рдореЗрд╢рд╛ рд╣рд░ 16ms рдкрд░ рдЙрдкрдЬ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдпред