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-mvc-2 – ASP.NET MVC2 Ninject NLog(shared hosti
- asp.net-mvc – 如何为ASP.NET MVC区域捆绑资源?
- asp.net-mvc – HttpContext.Items与ASP.NET MVC
- asp.net – 使CustomValidator与ValidationSummary消息框一
- asp.net-mvc – ASP.NET MVC:从控制器返回CDN图像
- VS 2013 RC中缺少ASP.NET Web窗体脚手架功能
- asp.net-mvc – ASP.NET MVC Validationsummary with exclu
- asp.net – 从IEnumerable获取不同的项目
- asp.net-2.0 – 如何解决ASP.NET“”应用程序路径到网站根目
- 如何在ASP.NET中垂直对齐对象?
- asp.net-mvc – 如何刷新多个部分视图点击Ajax.A
- asp.net-mvc-3 – 如何在控制器方法的新选项卡中
- asp.net – 报表查看器Web控件HTTP处理程序尚未在
- asp.net-mvc – 控制器中的模拟服务器
- WebApi ASP.NET身份Facebook登录
- asp.net – 当你不能使用ViewState时你会怎么做?
- 实体框架Core 1.0工作单元与Asp.Net Core中间件或
- asp.net-mvc – Asp.net MVC 3 RC – Razor Vali
- asp.net-mvc-3 – 如何使用MiniProfiler与单页We
- 如果您已实施ASP.NET路由,则ASP.NET中的PageMeth
