在Rails 3.1中,可以选择启用HTTP流,以便您的页面可以放在一起。在关于此功能的Railscast中,Ryan建议最好启用此功能,以便在页面的其余部分仍然呈现时可以拉下CSS和JavaScript。
我始终遵循指南,即在加载所有页面内容后脚本应位于页面底部,这样可以减少感知的加载时间,但这样做不会利用HTTP流。
您认为现在的最佳做法是什么?
答案 0 :(得分:2)
我认为这是一个很好的问题;我觉得有必要向谷歌寻求答案。
将脚本资源放在页面底部的论点是为了防止阻止浏览器的渲染器,否则可能会在屏幕上绘制像素,以便在加载页面的其余部分时保持用户忙碌。通过HTTP流式传输,我们谈论的是能够做一些关于服务器作为瓶颈的事情。当我们等待所有昂贵的数据库查询和后端服务调用完成时,我们可以加载JS / CSS资产。
在我看来,有一个临界点你应该< head>您的资产与否< head>你的资产。如果你的JS / CSS资产可以在之前下载你的服务器已准备好其余的响应,那么这只是一个净的性能提升。
不要< head>页面的资产如果:
做< head>页面的资产如果:
这听起来是对的吗?
答案 1 :(得分:2)
对于一般情况,我认为不幸的是他们仍然会走到谷底。原因是Safari for Mac在开始发出资产请求之前缓冲1024个字节(而iPhone和iPad的Safari缓冲区为512个字节)。
由于文档的头部通常较小,因此Safari用户仍会获得普通的糟糕体验。
根据我与Hongli Lai一起完成的一些测试,Firefox,Opera和IE8没有缓冲,Chrome缓冲了252个字节。我仍在研究这个问题,但在撰写本文时,这是我的结论。
答案 2 :(得分:1)
对主观问题的主观回答: