如何高效的載入scss文件?

我正在學習Scss,看到了一篇文章Aesthetic Sass 1: Architecture and Style Organization

如果我有以下文件結構,

  • base/ – contains global styles, such as resets, typography, colors, etc.
  • components/ – contains each self-contained component in its own .scss partial
  • layout/ – contains styling for larger layout components; e.g. nav, header, footer, etc.
  • pages/ – contains page-specific styling, if necessary
  • themes/ – contains styling for different themes
  • utils/ – contains global mixins, functions, helper selectors, etc.
  • vendors/ – contains 3rd-party styles, mixins, etc.
  • main.scss – output file that brings together all of the above parts

main.scss包含了所有scss。

看帖子說,我可以只編譯main.scss成main.css,然後導入main.css到html頁面。

我的問題是

- 初始載入所有css是否合理?個人覺得最好是用的時候再載入比較好,否則載入會很慢。有沒有什麼改善的實際有效的方法?


CSS 載入會阻塞 HTML 渲染,如果 & 引入的 CSS 過大,對首屏展現時間會有較大影響。題主的問題很好,當然可以分模塊去輸出 CSS。分模塊、打包合併和緩存之間存在一個相互取捨的關係,可能需要實驗來選擇。另外,提前內聯首屏 CSS,把其他部分放入 & 可以有效加速首屏呈現。但首屏用到的 CSS 識別出來沒那麼容易,可以參考 Addy Osmani 的 https://github.com/addyosmani/critical/。


用到再載入那才叫慢。

請以實際測試為準不要猜測。

一般我們都會加上長期緩存。


我覺得只要在一定的程度上能保證css載入完,比如多少毫秒,那載入越多越好,然後才是按需載入。


根據經驗,多page的網站還是把css按頁面分開比較好,留一個公共css文件。


協商緩存


推薦閱讀:

css 當中如何實現一個元素的hover, focus 狀態改變其他元素的樣式?
如何實現視差滾動效果的網頁?
display:inline 的元素不能用於清除浮動嗎?
你是如何去組織項目中的 Less/Sass 代碼的?
為什麼「margin:auto」可以讓塊級元素水平居中?

TAG:前端開發 | CSS | 前端性能優化 | 前端入門 | Sass |