1

我在我管理的一个网站上看到一个奇怪的间歇性显示错误。它似乎只是间歇性地发生,并且在某些运行 Windows7 SP1 并使用 IE8.0.7601.17514 的机器上。我无法在任何其他配置上重复该错误,包括 Windows7 ie9、ie8、ie7(最后 2 个使用 ietester 模拟)、带有 IE8 的 WindowsXP、firefox、chrome、safari 等。还值得注意的是,有时你会遇到这个错误,其他时候不是,即使在同一页上。

问题似乎是来自大型下拉菜单的内容出现在顶部并显示在随机位置(参见http:www.brenclosures.com.au/images/aaa-image003.jpg

您可以将站点标题中的问题视为带有一些图标的矩形框。值得注意的是,这不是一个一致的位置,而是四处移动。我已经在顶部、徽标、另一侧、搜索框等处完全看到了它。您无法选择它,而且即使您只是刷新页面,它也经常移动并显示完全不同的东西!

我将 Spry 用于菜单系统。这在某些与不包括链接的行项目相关的页面上显示错误,但我已在某些页面上修复了该问题,但我仍然看到问题。

我还在大多数网站上使用 jQuery 和 1.3。然而,在查看了类似的帖子后,我在某些页面上更新到 1.6.4,但仍然显示相同的问题。我刚刚要求看到这个问题的人(不幸的是恰好是客户端)在完全关闭 jQuery 的情况下测试页面,看看这是否有什么不同。

我也在运行 jQuery fancybox 插件,我猜它还包括 jquery.easing.1.3

有没有人对可能发生的事情有任何想法?我认为这不是硬件问题,因为我们曾经在虚拟机中看到过这个错误,尽管我们无法重复它!

如果您想亲自查看,该站点的 URL 是http://www.brenclosures.com.au 。

我真的很感谢你的帮助,因为这个让我完全难过!

干杯西蒙


我希望我能嵌入一个,但我是一个新用户,我能做的事情有限。他们在第二段末尾的链接是显示问题的照片。遗憾的是,我没有得到搜索框中出现的图形的屏幕截图,这是我个人最喜欢的!

我也刚刚听说将 jquery 升级到最新版本并没有解决问题,但是当我关闭 jquery、jquery easing (1.3) 和 fancybox 时,确实如此,所以问题与 jquery 相关。我现在希望更新所有这些,看看会发生什么。当我这样做时,我会告诉你的。

谢谢西蒙


好的,我想我开始了解正在发生的事情。我不知道为什么!

这似乎只影响 IE8 并且只影响 jQuery。这似乎不是 fancybox 或 jQuery Easing 的问题,只是 jQuery 本身。把它关掉,问题就消失了。

话虽如此,该错误似乎与 jQuery 实际所做的任何事情都没有关系。似乎正在发生的事情(以及为什么在某些时候似乎只有某些机器受到影响如下:-

  • 偶尔背景渐变或 png swoosh 似乎在加载时会延迟,尽管它位于堆栈的顶部。
  • IE8 似乎为图像保留了一个位置,即使有延迟
  • 由于什么都没有,所以 jQuery 的效果是它从 CSS 加载随机背景图像作为替换
  • 一旦“真实”图像加载,问题就会消失。然而不知何故,在 IE8 中,这些图像似乎有卡住的习惯!

因此,一个解决方案似乎可能是预加载背景图像,但仅限于 IE8。我现在添加了一个预加载器,希望问题应该消失!没有的话我再发一次!


那也没用!我应该三思!如果图像卡住了,使用预加载器加载它们不会有太大帮助!

我最近的计划是:-

  • 使用精灵,以便一次加载所有图像。这将防止显示其他部分,因为所有内容都将同时加载。危险是什么都不会加载。

  • 使用缓存控制,以便为背景图像设置长 TTL。希望这意味着如果它们成功加载一次,您将不会再看到同样的问题。问题在于这些图像位于共享的 Windows 服务器上,因此缓存控制并不像调整 htaccess 文件那么容易。我可能会修改 IE8 的 CSS,以便可以将它们发送到 Linux 服务器!


最近更新。我已经尝试了各种技术,到目前为止我能说的最好的就是我已经让问题似乎持续了大约半天左右。我尝试过的事情包括: -

  • 从不同的 URL 加载图像,我也可以在浏览器上缓存它们。这是在我发现问题似乎特别是当标题中的 png 卡住加载时出现的尝试。
  • 我真的以为我有这个!我更改了 jQuery,以便在页面完成加载时开始加载,而不是正常控件,而是将其更改为 onLoad 函数,以便它应该等到所有资产也加载完毕。那个工作了大约半天!

在我要求他们升级到 IE9 之前,我最后的努力是用 jQuery 重写整个菜单系统并从页面中删除所有 Spry。不得不说,我对这个其实并不抱太大希望。无论如何我都需要这样做,但我发现从页面中删除 Spry 似乎没有任何效果。

4

0 回答 0