我有一个使用更新面板和一些按钮的 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 中是否有任何设置可以使用?
该网站将仅在我的客户设备上运行,它不公开,所以如果在客户端上有任何设置可以玩,我会支持它。
我对此感到非常困惑,并且还没有找到触发“错误”的方法,它有时会发生。非常感谢任何建议和提示。
更新:
添加了一些错误处理,当回发失败时,我(不一致)收到以下消息:
该页面正在执行异步回发,但 ScriptManager.SupportParialRendering 属性设置为 false。确保在回发期间将该属性设置为 true。
奇怪的是,这个属性在第一个实例中显然是正确的,否则回发将永远无法工作,事实并非如此。
更新 2:发现以下博客文章建议更改 web.config 中的 browserCap 设置。现在试试这个。会回来汇报的。其他建议仍然很受欢迎。 ASP.NET 4 BrowserCaps(或者:他们在想什么?)
以上在全屏模式下禁用 safari mobile 中的 javascript(从主屏幕运行)。以下文章建议解决此问题。 问题:iPad 与 ASP.NET