回答
在Firefox搏击FOUT: Firefox启动重 - 渲染文本之后window.load事件。 因此,我所做的就是隐藏像Paul Irish这样的内容,但是在window.load之后,我仍然等待200毫秒(为真实渲染提供FF时间),然后显示页面。
我的网站有很多图片,所以为了加快速度,我首先发送页面没有内容,然后用ajax调用获取内容。 这是很多工作来满足FF,但结果是好的。
这是我保罗爱尔兰的变种,请注意我用的知名度代替负文本缩进,以服务游客至少布局速度快:
<script>
(function(){
var d = document, e = d.documentElement, s = d.createElement('style');
if (e.style.MozTransform === ''){ // gecko 1.9.1 inference
// s.textContent = 'body{visibility:hidden}';
s.textContent = 'body{text-indent:-9999px}';
e.firstChild.appendChild(s);
function f()
{
var ffrendertime = setTimeout (function(){s.parentNode && s.parentNode.removeChild(s)} , 200);
}
addEventListener('load',f,false);
setTimeout(f,2000);
}
})();
</script>
这是真正有用的,我改成了600,而不是200作为字体wasnt加载足够快。编辑:后来改回了我停止使用谷歌字体API后 - 太慢了。 – 2011-03-09 05:43:20
ffrendeime的点是什么 – 2013-08-26 20:17:12
在html标记中隐藏一个wf-inactive类的文本并且隐藏所有包含文本元素的.wf-inactive的后代节点的标题中的内联样式不会更好而不是做一个古怪的解决方法,在DOM加载后加载文本。认为这将比通过AJAX加载物理内容更好。 – cchamberlain 2015-03-23 17:37:51
@Erik,
已经有关于这个问题,其中保罗爱尔兰呼吁FOUT(无样式的文本的闪光)的讨论很多。有许多方法由
1的任何脚本之前,在页面的最顶端把CSS来限制这种标签
2最小化的字体文件
3浏览器缓存与遥远的未来的规模Expires头
4 Gziping你的CSS和字体文件(WOFF不能用gzip压缩)
保罗爱尔兰大约有一个很好的文章:Fighting the @font-face FOUT
史蒂夫Souders的也有他的高性能网站博客一个伟大的文章:@font-face and performance
下面是当网页字体有检测解决方案而完全不必
- 1. 实体框架 - 停止延迟加载相关实体按需?
- 2. 避免字体的延迟加载
- 3. 延迟加载谷歌字体类型
- 4. 停止闪烁文字javascript
- 5. AS3停止移动物体的闪烁
- 6. 停止闪烁从闪烁
- 7. 对实体延迟加载
- 8. 停止闪烁
- 9. QML预加载字体
- 10. 延迟加载,延期加载和实体加载实体框架
- 11. 休眠停止延迟加载
- 12. JPA2 /休眠 - 停止延迟加载?
- 13. 停止延迟加载图像?
- 14. Rails 3.2.13:停止ActiveRecord延迟加载
- 15. 身体和头文字闪烁,而社交媒体的插件加载
- 16. 实体框架 - 延迟加载,加载子实体问题
- 17. Windows(IE和Firefox)上的像素化字体(字体 - 脸部)
- 18. 添加延迟停止()。hide()
- 19. 延迟加载字典
- 20. Firefox - 字体改变:悬停
- 21. 砌体,延迟加载和ACF库字段
- 22. 延迟执行JavaScript的画布,直到字体已经加载
- 23. 如何延迟加载由@ font-face声明的网页字体?
- 24. Symfony2和Doctrine:代理类不会延迟加载实体字段
- 25. 直到字体加载完成后延迟div可见性
- 26. 实体框架4 - 延迟加载昂贵的字段
- 27. 实体框架延迟加载
- 28. 实体框架,SQLite和延迟加载
- 29. LINQ到实体延迟加载
- 30. 延迟加载框架实体问题
重复使用定时器加载:http://stackoverflow.com/questions/1330825/preloading-font-face-fonts – user123444555621 2010-07-31 20:33:06