zoukankan      html  css  js  c++  java
  • 前端优化杂谈(一)

    如何组织前端开发中的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文件显得有点浪费,对于这类样式,可以几个页面的样式写在一起。

     

  • 相关阅读:
    iOS之地理位置及定位系统 -- 入门笔记(用Swift)
    网易新闻iOS版使用的18个开源组件
    自学 iOS – 三十天三十个 Swift 项目
    iOS之UI--富文本总结
    IOS开发--横向流水布局实现
    IOS开发--仿制网易新闻
    Runtime 方法替换 和 动态添加实例方法 结合使用
    写给IOS开发工程师的网页前端入门笔记
    Runtime(动态添加属性)
    const,static,extern简介(重要)
  • 原文地址:https://www.cnblogs.com/lijiazhan/p/5242062.html
Copyright © 2011-2022 走看看