ASP.NET Ajax回发突然停止在IPhone / IPad上
我有一个Asp.Net 4.0网站/控制界面,它使用更新面板和一些按钮.更新面板连接到每5秒执行一次的计时器,导致部分回发.按钮切换一些设置,然后通过类似于此的调用强制更新更新面板:
var prm = Sys.WebForms.PageRequestManager.getInstance(); prm._doPostBack('<%= UpdatePanel.ClientID %>',''); return true; 该网站在IE / Firefox和Safari移动设备(IPhone / IPad)上运行良好,但在移动设备上,回发随机且无声地停止工作.我认为这可能与节省电池有关,并且safari在空闲时关闭部分回发.问题是,当用户返回到站点时,回发完全关闭,定时器和按钮都不会导致任何回发. (我已监控服务器上的网络流量以验证这一点).即使用户刷新网站(多次),部分回发也会重新发挥作用.它只是停止向服务器发布数据.然后突然,没有特别的原因,回发开始再次工作.停机时间通常长达10分钟,这完全使我的网站无法用于其目的. 鉴于在回发开始之前需要很长时间,我想知道在客户端或IIS中是否有任何设置可以使用? 该网站将仅在我的客户设备上运行,而不是公开的,所以如果在客户端上有任何设置可以使用,我就是为了它. 我对此感到很困惑,并没有找到触发“bug”的方法,有时会发生这种情况.任何建议和提示都非常感谢. 更新: 添加了一些错误处理,当回发失败时,我(不一致)收到以下消息:
很可能这个属性对于第一个实例中的设备显然是正确的,否则回发将永远不会工作,但实际情况并非如此. 更新2: 以上在全屏模式下(从主屏幕运行)禁用safari mobile中的javascript.以下文章建议修复此问题. 解决方法
我的问题中“更新2”下的调查结果解决了这个问题.显然,Safari UserAgents偶尔会被识别为Mozilla 0.0,如以下博文中所述:
ASP.NET 4 BrowserCaps (or: what were they thinking?):
在页面下方:
所以,把< browserCaps userAgentCacheKeyLength =“256”/>在Web.Config中解决了这个问题. 不幸的是,当在全屏模式下使用safari浏览器时(主屏幕上保存的链接),这会导致另一个问题.在全屏模式下,Safari使用不同的HTTP用户代理字符串,而ASP.NET不再将浏览器识别为Safari,而是将其识别为没有功能的通用浏览器,例如JavaScript和JQuery将停止工作.在Gotcha: iPad versus ASP.NET进一步详细说明.解决方案是在每个网站上的Page_Init中添加以下内容.不是很优雅,但它与上面的一起工作: protected void Page_PreInit(object sender,EventArgs e) { if (Request.UserAgent != null && Request.UserAgent.IndexOf("AppleWebKit",StringComparison.CurrentCultureIgnoreCase) > -1) { this.ClientTarget = "uplevel"; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何阻止不必要的回发
- ASP.NET MVC 6和ASP.NET Core 1.0之间有什么区别以及核心框
- asp.net-mvc – 是否可以将XDocument作为参数传递给ASP.NET
- ASP.NET OAuth授权 – 使用ClientId和Secret以及用户名和密
- asp.net-mvc – Visual Studio 2015异步变量未在调试器中显
- asp.net-mvc – Sitecore 7.5 MVC和HttpContext.Session.Ti
- asp.net – 如何和在哪里调用Database.EnsureCreated和Data
- asp.net – 配置部分不能在web.config文件中包含CDATA或文本
- asp.net – C#Web API模型绑定提供程序应如何工作?
- asp.net-mvc – 设置MVC 3 rc1 Razor cshtml文件构建动作编
- asp.net-web-api – DNN API基于角色的授权
- 使用ASP.NET成员资格提供程序限制对WCF REST(web
- asp.net核心 – 在ASP.NET Core的WebDeploy期间,
- asp.net-web-api – 当启用CORS时,ASP.NET Web A
- asp.net – 我需要编写一个sql查询来显示带有cat
- IdentityServer4身份认证授权入门-----客户端凭据
- asp.net-mvc – 单元测试Url.Action(使用Rhino M
- asp.net-mvc-3 – 如何将现有文件夹与其所有子文
- ABP官方文档(四十)【ASP.NET Core】
- asp.net-mvc-3 – 实体框架插件架构推荐