前端优化杂谈
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端优化杂谈相关的知识,希望对你有一定的参考价值。
如何组织前端开发中的css以及js代码,相信在开发的过程中是一个比较让人头疼的问题。
我们的目标是:
1. 让代码拥有较好的可维护性,提高代码的重复利用率。
2. 尽可能少的减少引入的css以及js的文件数量,因为过多的http请求会一定程度影响页面加载的效率。
3. 尽量少的引入与页面无关的代码,即减少代码冗余。
但要同时满足以上三个条件不容易,在后续的优化中,我们只能尽可能的平衡这种关系。
说到底就是如何处理代码的可维护性以及代码的性能,但不管怎么样,代码的可维护性应该是我们更应该重视的。现在的计算机都比较快,未来还会更快,在保证拥有较好的用户体验下,我们尽可能的提高我们的代码质量,这样就够了。
目前的开发中,我们用requireJs来实现模块化开发,一个大模块就是一个js文件,大模块中还有小模块,模块与模块之间通过接口互相调用,模块之间拥有较低的耦合度可以方便我们对代码的管理,提高代码利用率。
对模块的加载方式也是我们应该考虑的问题之一,这里参考AMD和CMD的规范。简单的说就是加载模块时采用预加载还是延时加载。具体问题具体分析,不同场景使用不同的方式。requireJs一开始是基于AMD的规范开发出来的,现版本的requireJs同样支持CMD的使用模式。
接着说说怎么组织css代码。
css文件大概分为三大类:
1. 全局通用模块
2. 局部通用模块
3. 私有模块
一、全局通用样式:这类css每个页面都会引用,需要在页面头部引用,前期开发可分成多个文件方便管理,后期生产环境可压缩合并成一个文件(common.css)。
1. 重置样式(reset.css),这类样式主要是统一各大浏览器的默认样式。
2. 图标样式(icon.css),使用css sprites管理的图标样式。
3. 自定义通用样式(custom.css),自定义一些页面常用样式以及对常用插件样式的重写,比如:
1 /* 清除浮动 */ 2 .clear-fixed:after { 3 content: ‘‘; 4 display: block; 5 clear: both; 6 } 7 /* 文字超过部分变成... */ 8 .nowrap { 9 overflow: hidden; 10 white-space: nowrap; 11 text-overflow: ellipsis; 12 } 13 /* 页面导航栏 */ 14 .nav { 15 overflow: hidden; 16 white-space: nowrap; 17 text-overflow: ellipsis; 18 } 19 /* 重置弹框插件的默认样式 */ 20 .dialog { 21 border: 0; 22 box-shadow: 1px 2px 5px #ccc; 23 }
二、局部通用样式:这类样式仅在部分页面引用,一般根据某些特征来为他们划分,比如:
1. 表单样式(form.css),常出现在编辑页面
2. 插件样式(dialog.css),这类样式一般不会去修改它,但是可以重写覆盖样式。
假如一个页面涉及的模块较多,这类样式的文件数量可能很多,但还是有优化的空间。建议对不同样式遵循以下规则:一开始加载便影响到页面外观的样式,建议css文件头部引入。而对于其他可延迟类样式(如弹窗插件的样式),可对其延迟加载,一般是跟随插件异步的引入时引入(依赖引入)。
三、私有样式:这类样式往往只有一个页面有,很奇葩,而且代码量不会很多,往往连1K都不到,如果把这些样式单独写进一个css文件显得有点浪费,对于这类样式,可以几个页面的样式写在一起。
以上是关于前端优化杂谈的主要内容,如果未能解决你的问题,请参考以下文章