3

我有一个网站,其中包含一个 CSS 样式的按钮,用于在悬停时显示不同的图像。我等待页面完全加载,然后将鼠标移到该按钮上。

Firefox 将显示新图像,但状态栏卡住显示“正在从 www.server.com 传输数据”或“正在等待 www.server.com”,并且永远不会消失。我可以通过Firebug的网络视图看到图像在悬停时正确下载,并且我在任何地方都看不到其他错误。

什么会导致这种情况?我之所以问,是因为我在此页面上遇到了后续 Ajax 调用完成脚本的虚假问题。

Firefox 卡住显示此状态是一个常见问题吗?原因是什么?

4

4 回答 4

3

不知道为什么会卡住,但有更好的方法来做翻转。将常规图像和悬停图像放在同一个图像中。然后使用background-position做翻转:

a.btn {
  background-image: url("/img/btn.png");
  background-position: 0px 0px;
}
a.btn:active {
  background-position: 0px 50px;
}
a.btn:hover {
  background-position: 0px 25px;
}

上面的 CSS 用于高度为25px. 顶部图像只是常规图像;下面是悬停图像;在其下方是active图像,单击链接时会显示该图像。

这消除了翻转状态更改之间的任何加载延迟。如果你想变得花哨,你甚至可以使用 JavaScript 为过渡设置动画(通过包含过渡帧)。

于 2009-04-22T02:58:14.967 回答
2

根据操作系统和网络类型,网络连接可能会因以下原因停止:

  • 客户端上的操作系统只允许一次打开一定数量的连接。
  • 服务器只允许来自单个客户端(或 IP 地址)的一定数量的连接。

Firefox 中的默认网络设置应该可以防止 99% 的问题,因为 Firefox 可以防止自己打开太多与服务器的连接或打开连接太快。此外,如果一切都以健康的方式运行,在打开连接失败的情况下,Firefox 会将它要发出的任何请求排队,并在它可用时将其放在另一个连接上,或类似的东西。

有时代理会干扰事物,甚至是您的 ISP 在您不知情的情况下使用的透明代理。有时网络上的数据包丢失过多,甚至 TCP 连接都变得不可靠。

但是,根据所描述的症状 - 它似乎是完全可重现的,我可能会查看服务器。无论如何,不​​要使用 Firebug 和所有方式来处理网络请求,还要检查服务器日志以查看是否有任何问题。如果 Web 服务器收到请求但由于某种原因无法提供服务,则应记录该请求。

于 2009-04-22T04:41:02.973 回答
1

我不熟悉这个具体问题,但我确实对运行 Gecko 的网络库 Necko 做了一些测试。

缺少一些欺骗状态字段的代码,状态栏向 www.server.com 指示某种网络活动。

您应该仔细查看您的代码,尤其是您可能加载的任何 js 库,以查看是否有一些意外的网络功能被启动。

如果您找不到任何明显的东西,您应该转向进行网络跟踪或使用 HTTP 日志记录,这取决于您更容易。

如果此时您无法隔离问题,您可能发现了一个新错误!不太可能,但这确实发生在我在模块上的工作期间......你应该在 bugzilla.mozilla.org 中提交一个错误,遵循最新和最伟大的错误提交规则。

于 2009-04-22T03:59:00.687 回答
0

您在加载 git.gnome.org 站点时遇到困难,并且无法加载。控制台说:样式表https://git.gnome.org/browse/cgit_text.css未加载,因为它的 MIME 类型“text/html”不是“text/css”。

于 2013-07-05T15:33:57.100 回答