2

这个快把我逼疯了。我们正在开发的 FB 应用程序在显示背景图像时出现问题。

有问题的应用程序: 摇滚征服

问题:当您首次使用 Google Chrome 加载应用程序时 ,主体和 DIV 类的背景图像MainHeader不显示。如果您刷新页面,它们就会出现。如果我打开元素检查器并取消选中然后重新选中背景图像框,我也可以让它们显示出来。之后,它们将继续正常显示,直到您关闭 Facebook/浏览器然后重新登录。

我只在使用 Chrome 时看到过这个问题,并且仅在通过 Facebook 访问该应用程序时才会发生。如果我直接进入应用程序 ( www.rockconquest.net ),那么它工作正常。

如果我只是复制首页的页面源代码,然后将其粘贴到静态页面中,它可以正常工作而无需进行任何更改。

4

2 回答 2

1

当您使用大量使用 ajax 的 Facebook、Twitter 或 Github 等网站时,通常会发生这种情况。

如果您使用 Javascript 显示背景图像,您应该尝试setTimeout在几毫秒后加载它。

于 2012-07-21T08:50:48.450 回答
1

Chrome 的开发人员工具显示,对您的两张背景图片的请求被“取消”,但快速浏览一下我无法告诉您原因。

我不认为您正在使用 JavaScript 显示这些背景图像,正如帕特里克在他的回答中所怀疑的那样(为什么会这样) - 但您可以尝试使用 JavaScript 进行“快速修复”/解决方法:

在页面加载时,生成两个新的 Img 对象并将它们的 src 属性设置为背景图像的 URL:

var whatever = new Img();
whatever.src = "…";

可能会让 Chrome 在加载后自动将它们显示在所需的位置——如果没有,那么你可以使用 Img 对象的 onload/oncomplete 处理程序再次显式设置元素的背景样式……我认为至少 Chrome 应该最后显示它们。

这不应该损害其他浏览器的性能,因为如果他们已经在第一次尝试时设法加载了图像,那么他们只会将它们从缓存中拉出来。

于 2012-07-21T09:30:14.877 回答