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 ...
随机推荐
- docker-compose的使用
docker-compose的介绍 Compose是一个定义和管理多容器的工具,使用Python语言编写.使用Compose配置文件描述多个容器应用的架构,比如使用什么镜像.数据卷.网络.映射端口等; ...
- Vue2.0使用vue-cli脚手架搭建
一:安装node.js Node.js官网:https://nodejs.org/en/download/ 选择相应的版本即可安装 通过node自带的npm包管理工具 二.安装依赖 安装依赖:npm ...
- linux所有命令不能用显示-bash: ls: command not found
所有的命令都显示找不到了,原因是修改了/etc/profile造成的 解决方法 1.修正属性文件中的错误 /usr/bin/vi /etc/profile 2.生效属性文件 source /etc/p ...
- python小游戏,石头/剪子/布
#从控制台输入石头(1)/剪子(2)/布(3) player=int(input("玩家出拳 石头(1)/剪子(2)/布(3)")) #电脑随机出拳 computer comput ...
- react球形文字旋转标签
/* * 球形文字旋转标签模块 * */ import React, {Component, PropTypes} from "react"; import ReactDOM fr ...
- 小白的python之路10/30 vim编辑器
1.vim进入命令行之后的编辑过程
- balcanced-binary-tree
题目描述 Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bi ...
- nodejs操作 mongoose(mongodb)和Sequelize(mysql)查询数据后添加新属性未生效
最近在着手koa时候,发现mongoose(mongodb)查询数据库后添加新属性,前端拿不到新属性问题, 然后测试了一下Sequelize(mysql),发现也有同样的问题存在.此时着手干! 1.1 ...
- Freeswitch 各版本一键安装脚本 Freeswitch 快速安装 G729编解码库
最近有时间整理,写了freeswitch的一键安装包分享一下,里面带有 mysql=0 是否选择安装mysql. 其他提示:脚本里面集成了安装g729脚本,支持录音.转码的bcg729脚本. 1.下载 ...
- MyLog
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;us ...