最近读了《HTML重构》这本书,如下作出本身的总结概括,你们能够一块儿学习交流。javascript
什么是重构?重构是在不改变程序行为的基础上进行小的改动是代码基本逐渐完善的过程,一般须要一些自动化工具的帮助。好的网站是须要咱们对代码进行日臻完美的改善。而搜索引擎优化(seo)是网站重构的主要驱动之一,跟图片相比搜索引擎更看重文本;跟后端文本相比更看重前端文本,他们更看重标题或元标签。做者但愿经过更多的文本内容取代如图片、flash等能够作好SEO。我我的以为看完了这本书对作 SEO是很是有帮助的css
百度百科对重构的定义是:重构(Refactoring)就是经过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提升软件的扩展性和维护性。html
下面这张思惟导图,是我对全书大致内容的一个归纳性总结:前端
工具html5
本书推荐的工具主要包含的是自动化测试,可是我以为现行的开发环节当中实际用到的会比较少。这里就推荐一下其余方面的优秀工具:java
1. YSlowgit
YSlow是雅虎推出的一款浏览器插件,能够帮助你对网站的页面进行分析,并为你提供一些优化建议,以提升网站的性能。戳我查看Yslow-23条规则github
2. PageSpeedweb
PageSpeed也是一个浏览器插件,由google推出,能够很好地对咱们的Web网站进行优化实践——帮助你轻松对网站的性能瓶颈进行分析,并为你提供优化建议。chrome
3.其余优秀工具
良构
什么是良构?从技术角度来说:它表示文档要遵循某种严格的结束好比每一个起始标签都应该有一个结束标签、元素的开始与结构都在相同的父元素内以及每一个实体引用都要事先定义好。虽然如今多数网站都已经采用:
<!DOCTYPE html> //dtd
采用html5<!DOCTYPE> 标签让咱们在书写html标签语句的时候能够不须要那么规范,可是我以为从文档的严谨性和规范性以及可读性上而言,遵循xml标准仍是十分有必要的。所谓的良构符合标准:
1.全部的起始标签都应有一个匹配的结束标签。
2.空元素应该使用空元素的标签语法。
<br /> --> <br class=”empty” />
3.全部的属性都必须有一个值
4.全部的属性值都须要用引号括起来
5.全部的&号都必须转义为&
内嵌的JavaScript在这里会出现问题。Javascript中&是不可转义的。能够把脚本移出到一个不必转义的外部文件中或者把脚本放进注释中。
6.全部小于号<都要转义为<
内嵌的JavaScript在这里会出现问题。Javascript不会把<当作小于号。能够把脚本移出到一个不必转义的外部文件中或者把脚本放进注释中。
7.只有惟一的根元素
8.转义属性值中的引号
在属性值中把 ” 转义为" ,把 ’ 转义为' 。
9.全部未预约义的实体引用必须在DTD中声明
10.结束每个实体引用,替换虚构的实体引用
XML要求实体引用以分号结尾。
11.将名称改成小写,全部元素的
12.把文本转化为UTF-8
Utf-8是一个标准的编码,可运做在全部浏览器上,被主流的文本编辑器个工具支持,支持全部Unicode字符。
内容
可访问性
做者说了三点
a、对于视力很差的用户能够经过感知来感知文本
b、能够加大搜索引擎的结果
c、能够提高网站性能,并且能够节省带宽成本及访问者的时间
做者仍是那句话:HTML文档只有内容不该该有装饰
对非隐藏的input,textarea,select等表单元素确保它们都有相应的标签
为每一个表单添加Tab索引这样用户就能够经过tab键进行跳转了
<input tabindex="1" type="checkbox" />
有7个元素支持tabindex分别为:a area button input object select textarea
// en定义语言为英语
// zh-CN定义语言为中文
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN" xml:lang="zh-CN">
// 若是网页定义为XHTML1.1或者XML格式,那么可使用xml:lang属性(由于xml:lang属性是在XML中肯定语言信息的标准用法).
// 若是网页使用HTML格式,那么应该同时使用xml:lang和lang属性.
布局
建立现代网页须要使用与CSS相分离的XHTML不要再使用表格型布局与font标签等表现性元素(//老生常谈)
Web应用程序
如下操做都应该经过POST操做
1) 定购商品
2) 签署法律文档
3) 从CMS中删除页面
4) 签署申述
5) 发送电子邮件
6) 向数据库插入新内容
7) 打印地图
8) 操控机器
如下操做都应该经过GET操做,由于这是安全的。且没必要强制用户接受
1) 读取文档
2) 从CMS下载一份可编辑文档的副本
3) 读取电子邮件
4) 查看地图
5) 检查机器的当前状态
经过GET访问的URL能够连接、被爬虫抓取、收藏、预抓取,缓存。GET的形式的URL让用户可使用后退键。总的来讲,在这些状况下GET操做比POST操做对用户更友好。GET形式的URL对搜索引擎也更友好,能够提升搜索引擎排名。
启用缓存某些不常改变的资源(如网页icon)能够大大提升用户访问页面的速度,提高用户交互性能。
ETag:Etag是URL的Entity Tag,用于标示URL对象是否改变,区分不一样语言和Session等等。具体内部含义是使服务器控制的,就像Cookie那样。
简单的总结,但愿各位能有所收获。