2009年6月29日星期一

[翻译]减小 HTML 文件

改善网站速度的一个很明显的方法是减小 HTML 文件的大小。有一些方法,比如:硬压缩(rigid compression),acupuncture-like ID 及改变 class 名(译注:这一句不是很确定,原文:There are several ways to do this, from rigid compression to acupuncture-like ID and class name changes)。下面是一些我们总结的使 HTML 标记更精简的方法。

译注:上面是引用 youtube 的视频,请翻墙观看。

HTML 4

HTML (非XHTML),MIME type 为 text/html ,允许省略一些标签。通过 HTML 4 DTD,你可以省略以下标签(那些所谓可避免的元素,这里用删除线加以标记(感谢一楼的翻译))

</area>
</base>
<body>
</body>
</br>
</col>
</colgroup>
</dd>
</dt>
<head>
</head>
</hr>
<html>
</html>
</img>
</input>
</li>
</link>
</meta>
</option>
</p>
</param>
<tbody>
</tbody>
</td>
</tfoot>
</th>
</thead>
</tr>

比如,你的代码是

<li>List item</li>

可以写为

<li>List item

又比如段落要以

</p>

结尾,你可以只写

<p>My paragraph

甚至可以去掉 html,head,body(把这作为你的编码规范之前请确保这会令你舒服)。

省略标签后 HTML 依然有效,同时减小了文件大小。对一般的页面来说,可以节省 5-20%。

HTML 5

正在发展中的 HTML 5 提供了一些减小文件大小的方法。

比如,页面文档类型声明

<!DOCTYPE html>

对比

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

很显然 HTML 5 的 DTD 更短。

当为页面指定编码时,HTML 5 很易用而且更短:

<meta charset="utf-8">

代替

<meta http-equiv="content-type" content="text/html; charset=utf-8">

通常情况下,浏览器会正确处理 HTML。

另外,在今天的 HTML 5 中,你可以去除声明 MIME 类型的 type 属性,比如

type="text/css"
type="text/javascript"

你可以用

<script>
替代
<script type="text/javascript">
<style>
替代
<style type="text/css">

在所有类型的页面中(甚至是 XHTHML)你可以省略

type="text/css"

HTML 5 使这一切变得更简单。

同时使用上面所有的方法会使文件节省 10%-20%(甚至更多),这取决于你的编码风格和页面中的文本内容数量。代码将更干净,访问者会更快的获取网站内容。在隐私中心项目中我们采用很多这类技术,节省了原始文件大小的 20%。

2 条评论:

匿名 说...

很好的文章,谢谢。
大概应该是
那些所谓可避免的元素,这里用删除线加以标记

海妖的夜 说...

个人认为易读性大于文件大小. 一个html文件在当今的网络下有多少意义?
况且未结束的标签对于浏览器渲染是有消极影响的.