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

.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. 根据cid获取哔哩哔哩弹幕

    def biliget(cid): headers = { "Accept": "*/*", "Accept-Language": &quo ...

  2. 服务定位器(Service Locator)

    服务定位器(Service Locator) 跟DI容器类似,引入Service Locator目的也在于解耦.有许多成熟的设计模式也可用于解耦,但在Web应用上, Service Locator绝对 ...

  3. GET 和 POST 的区别 以及为什么 GET请求 比 POST请求 更快

    引子: 和朋友的聊天中得知他公司后台接口全部都是 POST 请求, 我表示很纳闷为什么全是 POST 请求呢? GET 比 POST 安全,或者说 便于后台方便,后台不用区分包装类  (所以全部用 P ...

  4. QT:图形的描画(折线,柱状图,多边形)

    1. 创建一个继承于QWidget的类,重载一个叫paintEvent的函数, 2. 在paintEvent函数中调用Qpainter类,此类是一个重量级类,在paintEvent函数尽量只创建一次 ...

  5. java多线程之堵塞的应用

    线程在Running的过程中可能会遇到阻塞情况,上次的内容我们已经使用过sleep()的方法. 调用join()和sleep()方法,sleep()时间结束或被打断,join()中断,IO完成都会回到 ...

  6. 意想不到的javascript

    最近总遇到些叫人想不明白的javascript,先列出来玩玩: 1. var name=1; switch(name){ case 1:console.log(name); break; defaul ...

  7. 构建web应用之——maven创建以及SpringMVC配置

    构建web应用第一步需要创建以及配置maven项目管理,同时配置启动SpringMVC,这里推荐参考CSDN的一篇文章链接:https://blog.csdn.net/weixin_42222334/ ...

  8. ClientDataSet使用locate或Filter定位到字段为空值的记录

    场景,程序想检查是否存在某个字段的值是空的,如果存在,则不允许增加记录,否则允许增加记录. 解决这个问题,我一开始用了两种错误的方法 if not clientdataset.locate('AFie ...

  9. Rhino学习教程——1.4

    状态栏 状态栏位于整个工作界面的下方,主要显示了一些系统操作时的信息. 根据不同的功能,可以将状态栏分成4个部分. 一.坐标系统 在状态栏左侧显示了当前所使用的坐标系统(“世界”或“工作平面”,可以通 ...

  10. Android Studio中使用Git进行代码管理(分支、合并)

    打开Android Studio选择,选择从Git检出代码 也可以从VCS如下点击 去远程仓库复制地址,这里以码云Gitee第三方代码托管为例,类似Github的界面,点击右边复制项目地址 填一下配置 ...