在具有大型GWT应用程序的Internet Explorer中出现极其奇怪的行为

时间:2010-11-11 05:57:21

标签: internet-explorer gwt internet-explorer-8 internet-explorer-7 gwt-rpc

我的页面上有一个加载程序,一旦我收到成功的RPC响应,就会删除它。如果RPC调用失败,则会立即刷新页面。

任何时候我第一次在IE 7或8中加载我的页面时,它将永远不会加载并且永远不会到达rpc调用失败的方法。每次我手动刷新失败的负载,它都有效。我已经能够重现这个约30次。这是一个问题,因为页面只是坐在屏幕上有一个加载器。

我不知道会发生什么。亲自尝试一下:

1)打开IE7或IE8。 2)转到http://www.foodtrucksmap.com/ 3)页面会说已经完成并且永远坐在屏幕上有一个装载机。 4)刷新页面,它应该可以工作。

我只能提出一个糟糕的解决方案......创建一个30秒的计时器,如果加载程序仍在屏幕上,请刷新页面。我宁愿发现最近发生的事情。

更新

作为第二个临时解决方案,我将添加一个立即过期的cookie,如果它在会话中第一次访问则会重新加载。

2 个答案:

答案 0 :(得分:0)

无论我们尝试过什么,我都有过IE缓存AJAX GET请求的糟糕经历 重要的是,我们能找到的最佳解决方案是使用POST来解决问题,但这是一种解决方法。更改标头以明确禁止缓存也不起作用。

答案 1 :(得分:0)

根据您发布的有限信息以及我能够从您的网站中提取的内容,我想知道您是否遇到了请求时间或其他与服务器相关的问题。例如,你有36个未压缩的javascript文件加载(其中35个完成)和整个主机407个代理错误。

您必须非常小心js文件的加载顺序以及脚本标记的放置位置。 IE对此特别敏感。

您有两种选择:

  1. 尝试添加defer到您的脚本标记;这应该强制它在加载内容后加载js。
  2. 正如雅虎所建议的那样,将脚本标签移动到您关闭的身体标签()上方,然后尝试查看它是否有所作为。我敢打赌,它正在等待加载基于javascript文件尚未完成加载的内容,整个事情都会超时。