【发布时间】:2010-10-14 19:35:08
【问题描述】:
我的应用程序中有许多页面在加载时显示部分 FOUC(无样式内容的闪烁),这是因为其中一些页面在文档开头而不是在布局中定义了样式表和/或 javascript .根本问题是 DOM 在加载这些样式表之前就被触发了。
为了解决这个问题,我想有几种可能:
- 将 DOM 触发延迟到加载其他样式表之后。这会起作用,但会降低网站速度,因为我们会强制 DOM 等待至少两个样式表连续加载。
- 把它留在原处,FOUC 和所有东西。
- 将所需的样式表移动到布局中,以便在第一时间加载其余样式表。这是性能最佳的,但它干扰了我的困惑。我有很多页面使用相同的布局,但每个页面都需要不同的修改样式表。例如,用户可能使用应用程序布局但需要 users.css 文件,而产品可能使用应用程序布局但需要 products.css 文件。这个选项的终点是许多几乎相同的布局,唯一的区别是要包含什么 css(可怕地 unDRY)。
- 一个优雅的技术解决方案,我不知道我的中介。
包含不同样式表的正确方法是什么,是否可以在不复制布局代码的情况下做到这一点?
【问题讨论】:
-
你能澄清一下'文档的头部'和'布局'是什么意思吗 - 你是指 HTML 页面的 部分和 Rails application.html.erb 文件吗?跨度>
-
嗨蒂姆。布局是指 Rails 布局,例如 application.html.erb。我的意思是(可能不准确!)在视图 users/new.html.erb 顶部的样式表声明。
标签: ruby-on-rails css performance layout dry