页面加载 - 页面之间的白色“闪烁”

时间:2010-09-15 23:27:40

标签: php css zend-framework xhtml fouc

有两个网站,一个正在开发中。我正在将一个站点移植到Zend Framework(出于可维护性/集成目的)。

原始(实时)网站具有无缝页面加载 - 它将加载,然后更新屏幕上的内容,同时保持页面上的背景图像,导航等。

移植的网站(开发)“闪烁”完全白色片刻,然后所有内容同时出现。

根据我的理解,这是一个FOUC(无格式内容的闪现)。两个站点上的内容始终显示完整样式,包含所有CSS规则。这两个网站在渲染时看起来完全相同,它们使用相同的图像,css和HTML标记。唯一的区别是一个(开发)由Zend Framework提供,另一个(实时)由程序PHP提供。

导致此问题的主要原因是,这是ZF的已知错误/配置问题?我之前遇到过这个问题而没有使用ZF并且没有解决它。

感谢您的帮助。

4 个答案:

答案 0 :(得分:5)

尝试将javascript放在页面底部,就在关闭正文标记之前。这可以加快页面呈现速度,因为加载javascript会阻止其他下载(css,图像等),因此在您的所有脚本都已加载之前会将页面留空。

答案 1 :(得分:1)

它可能是您的网络服务器。尝试将服务器的HTTP标头与像http://web-sniffer.net/这样的网络嗅探器进行比较,看看缓存标头是否有任何区别。如果有的话,那么你的浏览器会抛弃一切并重新开始,在某些情况下看起来就像是FOUC。

答案 2 :(得分:0)

框架在输出任何内容之前评估控制器逻辑并呈现页面主体是很常见的;这可能导致数据发送到客户端的延迟,您的旧页面(我猜)会立即转储页面的标题。

答案 3 :(得分:0)

好吧,我过早地接受了答案。造成这个问题的原因实际上是SWFObject !!我在为新网站开发时注意到了这一点,并且它表现出相同的行为。我相信这只发生在版本2+中,但对于其他任何在页面加载之间出现背景闪烁问题的人(而不是一次显示所有呈现的HTML)并碰巧在这些页面上调用了swfobject - 将其删除并试一试。这也可能只是你的问题。

为了澄清,我在移植网站时更新了更新版本的SWFObject。