Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果主CSS代码是在客户端生成的,可以吗?_Javascript_Css_Performance_Client Side - Fatal编程技术网

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

Javascript 如果主CSS代码是在客户端生成的,可以吗?,javascript,css,performance,client-side,Javascript,Css,Performance,Client Side,我有一个构建过程,将较少的代码编译成CSS,然后将其注入JavaScript字符串中,并与主要的minified.js代码连接。然后主代码将CSS字符串注入页面 这样做的一个优点是,只需一个HTTP请求即可启动并运行样式和脚本 然而,这样做有什么警告吗 编辑 很多人认为我在做一个宣传册式的网站。实际上,我正在开发一个单页web应用程序。因此,如果禁用JavaScript,该应用程序将毫无用处。但是从可用性的角度来看,如果可以使用一些样式来告诉那些禁用了JavaScript的人需要JS来运行应用程

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

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

然而,这样做有什么警告吗

编辑

很多人认为我在做一个宣传册式的网站。实际上,我正在开发一个单页web应用程序。因此,如果禁用JavaScript,该应用程序将毫无用处。但是从可用性的角度来看,如果可以使用一些样式来告诉那些禁用了JavaScript的人需要JS来运行应用程序,那也许是最好的

编辑2

我正在Backbone.js中构建一个web应用程序。而且,我有多个视图。通过脚本标签加载它们是一个糟糕的想法。而且,依赖关系管理也会很糟糕。因此,我使用RequireJS来帮助我处理所有依赖性的东西

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

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

  • 如果有绩效福利,可协商
  • 如果禁用JS,则没有样式
  • FOUC(未格式化内容的闪烁)
  • 恶意JS错误可能会禁用所有样式

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

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

    因为css可以在客户端重写,所以我看不到在客户端生成它有任何问题。

    FOUC(未格式化内容的Flash).

    如果您正确编写CSS,在您站点的整个访问期间,访问者只会收到一个HTTP请求。前提是您确保它已缓存。你的优势不是很重要,如果有任何优势的话


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

    Hmmm。让我问一个相反的问题:这样做的好处是什么?你不能直接将CSS内部化而不使用Javascript吗?(
    标记)正确,但同样,用户也可以禁用CSS。无论如何,我希望禁用的Javascript变得越来越不常见(这不是双关语)。@Matt,至少想想Javascript错误可能会阻止css生成。2年后,流氓否决权。。。想知道为什么?虽然这在野外很常见,特别是对于使用jQuery和基于AJAX的框架的新手来说,但这是完全可以避免的。也就是说,您不必等待onload或ondomready这样的事件才能将样式表附加到文档中。我不确定我是否同意这种观点。过去有很多设备支持CSS,但不支持JavaScript,特别是在移动浏览器(自智能手机普及以来就不那么支持了)和代理浏览器(页面在服务器上呈现或重新格式化,如Opera Mini)方面。在阅读了您的回复以及其他帖子后,我同意在某些情况下,这可能被证明是次优的。谢谢你的信息。由于我通常为没有移动设备且所有工作站都相同的intranet开发,因此我忽略了一些不太明显的标准。