常用的前端文件的组织结构:

.js(放置javascript代码)

.lib(放置框架javascript文件)

.custom.js

.css(放置CSS样式代码)

.lib(放置框架CSS文件)

.images(放置用于样式中的背景图)

.reset.css(统一元素默认样式的样式文件)

.custom.css(业务相关样式文件)

.resource(放置页面图片文件以及其他类型资源文件)

.index.html

代码文件命名

  代码文件命名需要表明文件对应的模块内容、对应的版本号和文件格式等,例如:jquery的命名为:jquery-1.8.2.min.js,其中,jquery表明文件的内容,1.8.2表明文件的版本号,min表明此文件为文件的压缩格式版本。

前端代码重构过程:

1.删除无用的代码,精简代码。

  无用的代码主要集中在CSS和javascript文件中,包括已经不起作用的CSS样式和废弃的javascript函数。

2.前端代码规范化。

  页面HTML标签中还有大量的内联CSS样式,有些页面的head部分也有CSS样式,需要把这些样式放到独立的文件中;

  调整代码的层次缩进格式,不同层级按照4个空格来缩进;

  更改标准已不推荐的标签,如<center>、<b>等,改为由CSS样式控制;

  统一命名规则,这里主要涉及HTML中的id和class名称;

  在javascript中集中定义局部变量,并把部分全局变量转变为局部变量,缩小变量作用域。

3.整理基础库类

  重构的内容是统一UI插件的使用,统一基础方法的使用。

4.前端代码模块化

  按照模块归类CSS代码,放到模块对应的单独的CSS文件中

  按照模块分离javascript代码,按照模块定义不同的命名空间

  将javascript代码中的公共方法归类到独立的共通文件中,同时引入面向对象的思想来重构javascript代码,进一步明确公有接口和私有接口

5.提高页面的加载性能

  将部分不影响首页展示的javascript文件延迟到页面加载后加载

  删除页面中初始隐藏的区域,改为通过javascript按需动态生成

  页面中的部分图片延迟加载

  调整CSS和javascript文件中的引用顺序,即CSS在前javascript在后

  给静态文件设置缓存

  使用CSS sprint,合并首页背景图

  合并和压缩发布后的CSS和javascript代码文件

前端重构最佳实践

1、重构前一定要预估风险,如果没有足够的自动化测试,最好是先完善自动化测试代码

2、重构的目的和范围要明确,重构的目的主要是提高代码的可维护性、可读性和性能

3、最好是先易后难,循序渐进。首先修改诸如命名、格式等不涉及具体逻辑哦内容,然后考虑模块化和性能提升等与具体逻辑相关的内容

4、重构过程中要持续测试,在多个浏览器中测试,确保重构部分功能正确

5、如果性能提升,要事先检测网站的整理性能并量化,找出性能瓶颈,重构过程中要持续检测性能,并对比性能提升的效果

WEB学习笔记2-结构组织和文件命名的更多相关文章

  1. JAVA Web学习笔记

    JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...

  2. [原创]java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. Java Web 学习笔记 1

    Java Web 学习笔记 1 一.Web开发基础 1-1 Java Web 应用开发概述 1.1.1 C/S C/S(Client/Server)服务器通常采用高性能的PC机或工作站,并采用大型数据 ...

  6. Java Web学习笔记之---JSP

    Java Web学习笔记之---JSP (一)JSP常用语法 (1)HTML注释 <!--所要注释的内容 --> 在客户端显示一个注释. (2)隐藏注释 <%--所要注释的内容--% ...

  7. java web 学习笔记 编码问题总结

       java web 学习笔记 编码问题总结 1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码 ...

  8. [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. Java NIO 学习笔记(六)----异步文件通道 AsynchronousFileChannel

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...

随机推荐

  1. 依赖注入框架Ninject

    为什么需要依赖注入 我们提到MVC的一个重要特征是关注点分离(separation of concerns).我们希望应用程序的各部分组件尽可能多的相互独立.尽可能少的相互依赖. 我们的理想情况是:一 ...

  2. ARP协议分析(Wireshark)

    一.说明 1.1 背景说明 以前学网络用的谢希仁的<计算机网络原理>,一是网开始学不太懂网络二是ARP协议是没有数据包格式的(如果没记错应该是没有).学完只记得老师说:ARP很简单的,就是 ...

  3. Python 安装包报错

    以管理员身份运行cmd (requests为为所安装的包名) >>pip install reuqestsCollecting reuqests Could not find a vers ...

  4. Arrlist的重要方法重写

    import java.util.Arrays; public class ArrayOperator { public static void main(String[] args) { // TO ...

  5. Win10系列:C#应用控件进阶5

    多线形 多线形和多边形类似,不同点在于多线形中最后一个点和第一个点不会默认被连接.在多线形的点集中,可以存在同一个开始点和终结点因而会定义成闭合图形.下面将演示如何使用Polyline控件绘制一个多线 ...

  6. 【转载】Excel 三维地图入门

    三维地图入门(office 2016) https://support.office.com/zh-cn/article/%E4%B8%89%E7%BB%B4%E5%9C%B0%E5%9B%BE%E5 ...

  7. 结对编程ending-我和洧洧的碎碎念

    应该是第一次和队友分工合作去完成一个项目,其中也经历了跳进不少坑又被拉回来的过程,总体来说这对于我俩也的确是值得纪念的一次经历. 我的碎碎念时间…… 对比个人项目和结对编程项目二者需求,前者重在面对不 ...

  8. 与Recommender System相关的会议及期刊

      会议 We refer specifically to ACM Recommender Systems (RecSys), established in 2007 and now the prem ...

  9. oracle插入数据的时候报错:ORA-00928: 缺失 SELECT 关键字

    比如:插入数据的时候是这样的insert into a value('哈哈'); 报的是这样的错误:ORA-00928: 缺失 SELECT 关键字 其实就是value少了一个s,在oracle中,插 ...

  10. Java容器解析系列(10) Map AbstractMap 详解

    前面介绍了List和Queue相关源码,这篇开始,我们先来学习一种java集合中的除Collection外的另一个分支------Map,这一分支的类图结构如下: 这里为什么不先介绍Set相关:因为很 ...