如果主要的CSS代码是在客户端生成的,那还可以吗?

时间:2012-06-24 21:48:42

标签: javascript css performance client-side

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

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

但是,这样做是否有任何警告?

修改

很多人认为我正在制作宣传册型网站。实际上,我正在开发一个单页的Web应用程序。因此,如果禁用JavaScript,应用程序将完全无用。但是从可用性的角度来看,如果某些样式可以告诉那些使用已禁用的JavaScript的人需要使用JS来运行应用程序,那么它可能是最好的。

修改2

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

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

因此,我鼓励每个视图在自己的LESS文件中都有自己的风格。

6 个答案:

答案 0 :(得分:3)

  1. 如果有任何效果,则可忽略不计。
  2. 如果JS被禁用,则没有样式
  3. FOUC(无格式内容的Flash)
  4. 流氓JS错误可能会禁用所有样式。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

如果你正确地编写CSS,那么访问者在整个站点的整个持续时间内只会有1个HTTP请求。为您提供确保缓存。如果有任何优势的话,你的优势并不是非常重要的。

JavaScript不仅可以被用户禁用,而且有时也可以被公司防火墙阻止,具体取决于其中的指令类型或服务位置的启发式方法。例如。 某些的JavaScript文件可能会运行,而其他一些可能不会运行。这种情况经常发生在我的工作中。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

答案 5 :(得分:0)

FOUC(无格式内容的Flash)。