
рдпрд╣ рд╕рдм рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ рдХрд┐ рдореЗрд░реЗ iPad рдХреА рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░реЗ рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдкрд╣рд▓реА рдмрд╛рд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛ред рд▓реЗрдХрд┐рди рддрдм - рдХрдИ рдХрд╛рд░реНрдп рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рдереЗред рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдХрд╛рд░рдг рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдереАред рд▓реЗрдХрд┐рди рдХреЛрдб рдФрд░ рдбреАрдмреНрд░реАрдлрд┐рдВрдЧ рдХреЗ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЕрдзреНрдпрдпрди рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреВрд░реА рдЪреАрдЬ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╣реИред
рдмрд▓реНрдХрд┐, рдЗрд╕рдХреЗ рдлреБрд▓ рд╕реНрдХреНрд░реАрди рдореЛрдб рдореЗрдВ рд╣реИред рдЖрдкрдХрд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди iPad рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдЬрдм рддрдХ рдЖрдк рдЗрд╕реЗ рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓реЗрддреЗред
рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рдереА рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП - рдЖрдк рдЖрдЧреЗ рдЬрд╛рдиреЗрдВрдЧреЗред
рдЕрдкрдиреЗ рд▓реЗрдЦ "
рд╕рд╛рдЗрдЯ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдЕрдВрддрд░ рдФрд░ iOS рдХреЗ рд▓рд┐рдП AJAX рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди " рдореЗрдВ
рд╣реИрдмрд░реЙрд╕ рдорд╛рд░реНрдХрд╕
рдСрд░реЗрд▓рд┐рдпрд╕ рдиреЗ рд╕рдлрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓реЗ рд╣реА рдореБрдЦреНрдп рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдФрд░ рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рднреА рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, iOS рдкрд░ Safari рд╣рдореЗрд╢рд╛ ASP.NET рдИрд╡реЗрдВрдЯ рдкреЛрд╕реНрдЯрдмреИрдХ рдореЙрдбрд▓ рдХрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЖрдИрдУрдПрд╕ рдХреА рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ ...ред рдЬрдм рддрдХ, рдЬреЛ рднреА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд╡реЗрджрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЗрд╡реЗрдВрдЯ рдкреЛрд╕реНрдЯрдмреИрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рдПрдЧреАред
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рджред рдмреЗрд╢рдХ рдпрд╣ рдмреБрд░рд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХрд╛рд░реНрдп рдкрд░рд┐рджреГрд╢реНрдп рдмреЗрдХрд╛рд░ рд╣реИред
рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдереЛрдбрд╝рд╛ рдШреВрдордиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░
рдЗрд╕ рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдЕрджреНрднреБрдд рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╣реИред
рдХрд╛рд░рдг
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдИрдкреИрдб, рдЖрдИрдлреЛрди рдФрд░ рдЖрдИрдкреЙрдб рдЯрдЪ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рдФрд░ рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рд╕реЗ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпреВрдЬрд░рдПрдЬреЗрдВрдЯ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
- рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рд╕рдлрд╛рд░реА: рдореЛрдЬрд╝рд┐рд▓рд╛ / 5.0 (iPad; рдпреВ; рд╕реАрдкреАрдпреВ рдУрдПрд╕ 4_3_3 рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХреА рддрд░рд╣; en-us) AppleWebKit / 533.17.9 (KHTML, рдЧреЗрдХреЛ рдХреА рддрд░рд╣) рд╕рдВрд╕реНрдХрд░рдг / 5.0.2
- рдлреБрд▓-рд╕реНрдХреНрд░реАрди рдореЛрдб рдореЗрдВ рд╕рдлрд╛рд░реА: рдореЛрдЬрд╝рд┐рд▓рд╛ / 5.0 (iPad; рдпреВ; рд╕реАрдкреАрдпреВ рдУрдПрд╕ 4_3_3 рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХреА рддрд░рд╣; en-us) AppleWebKit / 533.17.9 (KHTML, рдЧреЗрдХреЛ рдХреА рддрд░рд╣) рдореЛрдмрд╛рдЗрд▓ / 8J2
рдирд┐рд░реНрдгрдп
рдЕрдкрдиреЗ рдЧреИрд░-рдорд╛рдирдХ UserAgent рдХреЗ рдХрд╛рд░рдг, iOS рдХреЗ рд▓рд┐рдП рд╕рдлрд╛рд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдПрдХ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдХреЗрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ рдирдИ рдкреАрдврд╝реА рдХрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
ClientTarget рдкреГрд╖реНрда рдХреА рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рджреЛ рдореВрд▓реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
- uplevel - рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 6.0 рдХреЗ рдмрд░рд╛рдмрд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
- downlevel - рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЙрдкрдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗрдм рдкреЗрдЬ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдХреНрд╖рдо рд╣реИред
OnPreInit рдореЗрдердб рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ рдмреЗрд╕ рдкреЗрдЬ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ:
protected override void OnPreInit(EventArgs e) { base.OnPreInit(e); if (Request.UserAgent != null && Request.UserAgent.IndexOf("AppleWebKit", StringComparison.CurrentCultureIgnoreCase) > -1) { this.ClientTarget = "uplevel"; } }
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА AppleWebKit- рдЖрдзрд╛рд░рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдФрд░ UserAgent рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░
рдпрджрд┐ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛рдлреА рдкреБрд░рд╛рдирд╛ рд╣реИ рдФрд░ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 1.1 рдХреЗ рджрд┐рдиреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рдВрд╕реНрдХрд░рдг 4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓ рд╕рдХрддреА рд╣реИ:
рдкреГрд╖реНрда рдПрдХ async рдкреЛрд╕реНрдЯрдмреИрдХ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди ScriptManager.SupportsPartialRendering рд╕рдВрдкрддреНрддрд┐ рдЭреВрдареА рдкрд░ рд╕реЗрдЯ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХрд┐рд╕реА async рдкреЛрд╕реНрдЯрдмреИрдХ рдХреЗ рджреМрд░рд╛рди рд╕рдВрдкрддреНрддрд┐ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рд╣реИред
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ UserAgent рдХрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдХрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ web.config рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - 64 рд╡рд░реНрдгреЛрдВ рддрдХ:
<browserCaps userAgentCacheKeyLength="64" />
рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 256 рд╡рд░реНрдгреЛрдВ рддрдХред
рдЗрд╕ рдореБрджреНрджреЗ рдкрд░
рдпрд╣рд╛рдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ
рд╣реИ ред
рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рдкреВрд░реНрдг-рд╕реНрдХреНрд░реАрди рд╕рдлрд╛рд░реА рдореЛрдб рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рд╕рд╛рд╣рд┐рддреНрдп рдФрд░ рд╕реНрд░реЛрдд