缓存与模块化的重要性.LESS

时间:2017-09-12 19:01:39

标签: optimization less browser-cache

希望这不是一个问题的两个概括。我有一个非常大的.LESS代码库,我正在努力找到优化页面速度,可维护性和整体“最佳实践”的最佳方法。

假设我有许多不同的页面类型,主页,关于页面,文章,支持页面,产品页面等等。还有更多.LESS模块,用于说滑块,旋转木马,模态,视频,文章,产品页面,支持,关于,主页,页脚,标题等

我们可以通过几种不同的方式导入它:

1)每个页面都相同:我在首页加载时导入所有内容,这会大大减慢页面加载速度,每个页面都不需要所有样式,但是在后续页面上,它应该被缓存,而不必加载任何东西

styles.less:

@import homepage;
@import prodPage;
@import about;
@import articles;
@import modals;
@import carousels;
@import videos;
@import ...

2)每种页面类型都相同:我在一个文件中导入所有小模块(有很多),因为它们更有可能在别处重复使用,然后分开页面类型特定的东西。这种方式在页面类型中,所有内容都将被缓存。当用户转到另一个页面类型时,他们仍然必须加载新页面类型的样式,但它们已经缓存了所有模块。但是每个页面都不太可能需要所有的mixin(并非所有页面都会有视频或旋转木马等:

homepage.less:

@import homepage;
@import ...

mixins.less

@import modals;
@import carousels;
@import videos;
@import ...

3)每个页面都有不同的文件:这样就可以为每个页面自定义.LESS文件。这样就不会使用任何样式,只下载必要的文件。这将使页面非常小(因此页面加载速度很快),但由于每个页面都不同,因此几乎没有缓存。此外,创建所有这些的工作量明显增加,而不是一次性下载所有这些:

articleOne.less:

@import articles;
@import videos;

articleTwo.less

@import articles;
@import carousels;
@import sliders;

所以最后,#1针对缓存进行了优化,但导致大样式下载和较慢的初始页面加载。 #3针对小型快速页面加载进行了优化,但没有缓存。 #2看起来像个中间人。

现在忽略这是否过度优化,最好的技术是什么?什么是“标准做法”?

0 个答案:

没有答案