WEB学习笔记2-结构组织和文件命名
常用的前端文件的组织结构:
.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-结构组织和文件命名的更多相关文章
- JAVA Web学习笔记
JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...
- [原创]java WEB学习笔记95:Hibernate 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Java Web 学习笔记 1
Java Web 学习笔记 1 一.Web开发基础 1-1 Java Web 应用开发概述 1.1.1 C/S C/S(Client/Server)服务器通常采用高性能的PC机或工作站,并采用大型数据 ...
- Java Web学习笔记之---JSP
Java Web学习笔记之---JSP (一)JSP常用语法 (1)HTML注释 <!--所要注释的内容 --> 在客户端显示一个注释. (2)隐藏注释 <%--所要注释的内容--% ...
- java web 学习笔记 编码问题总结
java web 学习笔记 编码问题总结 1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码 ...
- [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Java NIO 学习笔记(六)----异步文件通道 AsynchronousFileChannel
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...
随机推荐
- vue页面传值
第一种情况:例:消息列表页(路由)跳转: methods: { goTo(){ this.$router.push({ name:'/My/Info', query:{ 'tellSeq':this. ...
- python--网络编程urllib
一.python操作网络也就是打开一个网站,或者请求一个http接口,使用urllib模块.urllib模块是一个标准模块,直接import urllib即可 from urllib import r ...
- jsp转发与重定向的区别
1.转发的实现其实很简单,使用request的getRequestDispatch()方法得到RequestDispatch对象,然后在括号里放转发的地址,然后用这个对象调用forward()方法,里 ...
- 16、for-of循环
forEach不支持break for-in把数组当做对象来遍历,但是只能遍历出索引值 for-of循环可以遍历出数组的每一项值,支持break 1.for-in示范: 2.for-of示范 3.fo ...
- Java基本类型内存字节数
基本类型 字节数 位(bit) 取值范围 byte 1 1*8 -128~127 short 2 2*8 int 4 4*8 long 8 8*8 float 4 4*8 double ...
- mysql查询表字段名称,字段类型
select column_name,column_comment,data_type from information_schema.columns where table_name='查询表名称' ...
- C++各种优化
目录 1.快速结束程序 2.register 3.inline 4.位运算 5.少用或不用STL 6.快读快写 准备工作 超慢cin cout 输出 输入 神一般的快读快写 对比 7.小技巧 8.co ...
- 虚拟机如何固定ip并访问外网?!
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNor ...
- 逐帧动画抖动、适配布局、SVG Sprites
笔者所在的前端团队主要从事移动端的H5页面开发,而团队使用的适配方案是: viewport units + rem.具体可以参见凹凸实验室的文章 – 利用视口单位实现适配布局 . 笔者目前(2017. ...
- JQuery案例二:实现全选、全不选和反选
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...