0

我有一个将 LESS 代码编译成 CSS 的构建过程,然后将其注入到 JavaScript 字符串中,并与主要的缩小 .js 代码连接。然后,该主代码会将 CSS 字符串注入页面。

这样做的一个优点是只需要一个 HTTP 请求即可启动和运行样式和脚本。

但是,这样做有什么注意事项吗?

编辑

很多人认为我在做一个宣传册类型的网站。实际上,我正在开发一个单页网络应用程序。因此,如果 JavaScript 被禁用,该应用程序无论如何都是完全无用的。但从可用性的角度来看,最好有一些样式可以告诉那些禁用 JavaScript 的人需要 JS 才能运行应用程序。

编辑 2

我正在 Backbone.js 中构建一个 Web 应用程序。而且,我有多种观点。通过脚本标签加载它们是一个糟糕的主意。而且,依赖管理会很糟糕。因此,我使用 RequireJS 来帮助我处理所有依赖项。

但是 RequireJS 也有这个简洁的小插件,可以让你加载可以在应用程序中使用的纯文本文件。

因此,我受到启发,让每个视图在自己的 LESS 文件中都有自己的风格。

4

6 回答 6

3
  1. 可以忽略不计,如果有任何性能好处。
  2. 如果 JS 被禁用,则没有样式
  3. FOUC(无样式内容的 Flash)
  4. 流氓 JS 错误可能会禁用所有样式。
于 2012-06-24T21:51:34.573 回答
2

如果您正确编写 CSS,那么在您网站的整个访问期间,无论如何都只会有 1 个 HTTP 请求。提供您确保它被缓存。你的优势不是一个非常重要的优势,如果有的话。

JavaScript 不仅可以被用户禁用,而且有时也可以被公司防火墙阻止,这取决于对那里的指令类型或从何处提供服务的启发式方法。例如,您的一些JavaScript 文件可能会运行,而另一些可能不会。这在我工作中经常发生。

于 2012-06-24T21:59:20.323 回答
2

如果您在 css 插入代码之前以某种方式遇到 js 错误,则您的页面可能根本没有任何样式。

于 2012-06-24T21:52:03.067 回答
1

这对性能来说很糟糕,不应该在生产代码中使用。

于 2012-06-24T21:51:59.283 回答
1

由于 CSS 可以在客户端被覆盖,我认为在客户端生成它没有任何问题。

于 2012-06-24T21:52:43.810 回答
0

FOUC(无样式内容的 Flash)。

于 2012-06-24T21:54:59.183 回答