Rails 3.1 http stream —头部或底部的js?

如何解决Rails 3.1 http stream —头部或底部的js?

| 在Rails 3.1中,可以选择启用HTTP流传输,以便可以分块浏览页面。在有关此功能的Railscast中,Ryan建议启用此功能是一个好主意,以便可以在仍呈现页面的其余部分的同时下拉CSS和JavaScript。 我一直遵循以下准则:脚本在加载所有页面内容之后应位于页面底部,这样可以减少感知的加载时间,但是这样做将不会利用HTTP流。 您认为现在的最佳做法是什么?     

解决方法

我认为这是一个很好的问题。我觉得不得不为此寻求答案。 将脚本资产放在页面底部的说法是为了防止阻塞浏览器的渲染器,否则渲染器可能会在屏幕上绘制像素,以使用户在页面的其余功能加载时保持忙碌状态。通过HTTP流,我们正在谈论能够做一些有关服务器瓶颈的事情。当我们等待所有那些昂贵的数据库查询和后端服务调用完成时,我们可以加载JS / CSS资产。 在我看来,有一个转折点,您应该您的资产而不是您的资产。如果在服务器准备好其余响应之前就可以下载JS / CSS资产,那么这仅仅是净性能提升。 在以下情况下,请勿页面的资产: 您正在从服务器端缓存中提供页面 服务器的响应时间比JS / CSS的实际资产加载时间快(在计算加载时间时,请仔细考虑这些资产是否可能已经在客户端缓存了) 如果出现以下情况,请页面的资产: 与等待时加载所有JS / CSS资产相比,您的服务器需要更长的响应时间 那个听起来是对的吗?     ,对于一般情况,我认为不幸的是,它们仍将跌至最低点。原因是Safari for Mac在开始发出资产请求之前会缓冲1024字节(iPhone和iPad的Safari会缓冲512字节)。 由于文档的标题通常较小,因此Safari用户仍会获得普通的不良体验。 根据我与黎丽丽一起进行的一些测试,Firefox,Opera和IE8不会缓冲,Chrome会缓冲252个字节。 我仍在对此进行研究,但在撰写本文时,这是我的结论。     ,对主观问题的主观答案: 库(和函数定义在开头)均作为静态资产提供,因此可以对其进行缓存。 \'triggers \'到脚本块页面底部的回调等。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?