Rails 3.1 http streaming - 身体头部或底部的js?

Pau*_*aul 6 javascript ruby-on-rails http-streaming ruby-on-rails-3

在Rails 3.1中,可以选择启用HTTP流式处理,以便可以将页面放入块中.在关于此功能的Railscast中,Ryan建议最好启用此功能,以便在仍然呈现页面的其余部分时可以下拉CSS和JavaScript.

我总是遵循指南,在加载所有页面内容之后脚本应位于页面底部,这样可以减少感知的加载时间,但这样做不会利用HTTP流.

您认为现在的最佳做法是什么?

ste*_*her 2

我认为这是一个很好的问题;我觉得有必要向谷歌寻求答案。

将脚本资源放在页面底部的理由是为了防止阻塞浏览器的渲染器,否则浏览器的渲染器可能会在屏幕上绘制像素,以便在加载页面的其余功能时让用户保持忙碌。对于 HTTP 流,我们谈论的是能够对服务器这一瓶颈采取一些措施。当我们等待所有这些昂贵的数据库查询和后端服务调用完成时,我们可以加载 JS/CSS 资源。

在我看来,存在一个临界点,围绕该临界点,您应该<head>您的资产,或者不<head>您的资产。如果您的 JS/CSS 资源可以在服务器准备好其余响应之前下载,这只是净性能增益。

如果出现以下情况,请勿 <head> 页面的资源:

  • 您正在从服务器端缓存中提供页面
  • 你的服务器的响应时间比你的 JS/CSS 的实际资源加载时间要快(计算加载时间时,请仔细考虑这些资源是否可能已经缓存在客户端)

在以下情况下执行 <head> 页面的资源:

  • 您的服务器响应时间比等待时加载所有 JS/CSS 资源所需的时间还要

那个听起来是对的吗?