我最近尝试构建一个非常简约的轻量级css框架(类似于Pure CSS)。
在检查我的代码时,我的一位朋友建议我使用Javascript生成我的CSS,主要是为了显着减少文件大小。在以下两种情况下,文件大小会减小:
列类看起来像col-x-12
,JS可以计算宽度并使用更少的代码编写列类。
我可以在JS中映射CSS属性(例如bg
background
),从而减少文件大小。
生成的CSS可以直接插入head
或添加到CSSStyleSheet
。
除了运行JS所带来的小开销之外,这种方法可能会导致什么其他问题?
答案 0 :(得分:5)
出于几个原因,这听起来不错。
这可能会导致向用户发送较小的文件大小。如果文件大小是您最关心的问题 - 也许您正在通过昂贵的卫星上行链路进行传输 - 那么您可能需要通过JavaScript生成CSS。但如果没有,你会毫无理由地与几个缺点作斗争:
您可能无法增加感知加载时间。即使您向浏览器发送较少的字节,您的页面也可能会变慢(或感觉更慢)。 JavaScript运行时有两种选择:
document.ready
开火时。这样做的缺点是,在JavaScript完成运行之前,您的页面将以不正常的方式显示,并且浏览器将使用新添加的样式规则重新绘制页面。 只要您的<script>
代码在您的文档<head>
中进行评估。这样可以避免显示无样式的内容,但现在浏览器需要做很多工作:
所有这些步骤必须在浏览器继续加载页面之前运行。这意味着用户必须等待一段时间才能看到页面。
那你该怎么做呢?