【问题标题】:ASP.NET with IE9带有 IE9 的 ASP.NET
【发布时间】:2012-06-09 22:06:37
【问题描述】:

我在使用 IE9 加载 asp.net 页面时遇到了一个奇怪的问题。

基本上,我正在使用一个更新缓慢并且有一些奇怪编码的遗留系统。特定页面加载,然后有一个 iframe 加载不同的页面,基本上是 2000 年版本的异步加载。

问题是,当 iframe 页面正在加载时(它需要生成数据,因此它可能会在接近半分钟或更长时间后返回),IE9 不会从当前域加载任何新页面,直到 iframe 页面负载。因此,如果用户访问此页面,然后决定要访问不同的页面,他们必须等待 iframe 完成加载,然后才能浏览到不同的页面。首先单击停止按钮什么都不做,页面仍然存在,直到 iframe 加载。

这是一个企业网页应用,所以只支持 IE,但在 Chrome 中似乎没有出现这个问题(页面严重损坏,但不存在加载延迟问题)

有什么想法吗?

编辑:我应该添加 Response.IsClientConnected 始终返回 true,除非选项卡或浏览器关闭。

【问题讨论】:

  • 这与经典 ASP 有什么关系?
  • asp.net 还是 asp-classic,哪个?
  • 在按下停止按钮或按下 esc 按钮后,Response.IsClientConnected 是否继续报告 true?
  • 我正在使用 ASP.NET,但我认为在 asp-classic 上也会发生同样的情况。安东尼:是的,确实如此。它报告错误的唯一方法是关闭选项卡或浏览器。

标签: asp.net internet-explorer iis internet-explorer-9


【解决方案1】:

我找到了解决办法。

事实证明,IIS 为用户线程安全地保存会话,因此一次只能访问一个页面。当 iframe 中的页面正在处理时,它会锁定 Session 从而使任何其他页面等待它完成,从而延迟。

【讨论】:

    【解决方案2】:

    当点击离开页面的元素之一时尝试执行下一个

    window.frames[0].document.execCommand('Stop');
    

    如果您有超过 1 帧,请调整帧数

    【讨论】:

    • 不幸的是,这没有任何作用。
    • 如果我在 iframe 上执行“execCommand('Stop')”,它确实会中止连接,但 IE9 仍会等待,直到它返回导航离开。所以有些东西还在阻塞。
    • 如果你先停下来然后让 iframe 转到不同的位置,比如“about:blank”?
    • iframe 中止并导航到“about:blank”就好了,但 IE9 仍然阻塞,直到页面返回。
    • 可能是一个模态 iframe 参见 stackoverflow.com/questions/512257/…
    猜你喜欢
    • 2012-02-19
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 2012-07-09
    • 2011-12-19
    • 2015-05-30
    • 2012-09-17
    相关资源
    最近更新 更多