写点什么

不应忽视的 HTML 优化

  • 2010-05-13
  • 本文字数:1057 字

    阅读完需:约 3 分钟

随着 Web2.0 技术的不断发展,Web 前端的优化受到越来越多的关注,特别是 JavaScript 和 CSS 优化的讨论一直是热点,工具也相对丰富,而对 HTML 优化则有所忽视,最近,来自百度泛用户体验团队的工程师 Miller (chenminliang)撰文强调了HTML 优化的重要性和相关技巧。

Miller 首先举例说明了 HTML 优化稍显忽略的事实:

Steve Souders 的大作《 Even Faster Web Sites 》中谈到非常多有效的前端优化方法,例如 Javascript 的加载、CSS 选择符、图片优化、gzip、iframe 问题等,唯独没有细说 HTML 优化。

他强调 HTML 优化虽然看似微小,但是不可忽视:

在整个前端的构成中,HTML 是必不可少的一部分,而且是真正的展示“前端”。虽然与动辄十几 K 的 Javascript 相比,HTML 的大小在整个页面资源中一般不会占太多的比重,而且还有 Gzip,但是事实表明,大多数页面都有较大的压缩余地,即使是 Gzip 过后仍然能减小可观的体积…

Miller 在文中总结了 HTML 优化的各种方法,将其分为两类:绿色规则——在各类页面中适用且无害和橙色规则——在某些具体的情况下才适用或者有违标准。

绿色规则可以概括为以下几种:

  • 使用相对 URL,某些 href、src 属性如果与当前页面处于同一域名下,则使用相对 URL 能够节省至少一个域名的长度。
  • 删除 HTTP 或者 HTTPS,绝对 URL 都以 HTTP 或 HTTPS 等协议头开始,如果能确定 URL 的协议与当前页面 URL 的协议是一致的,或者说该 URL 在多种协议下均是可用的,则可以考虑删除这个协议头。
  • 删除注释,考虑不必要的 IE 条件注释和 CDATA 注释及自定义注释。
  • 压缩空白符,对于多数标签,可以通过删除多余的空白符来减少 HTML 体积,但是对于 pre 等是例外。
  • 压缩 inline css & Javascript,不管 inline 还是 external,都需要压缩,这是减小体积的最直接的方式。
  • CSS&Javascript 尽量外链,不仅可以减少体积,还能够充分利用浏览器的缓存机制。
  • 删除元素默认属性,在 HTML 规范中,很多 HTML 元素的属性是有默认值的,对于这些默认值可以抹去不写。

橙色规则就不一一列举了,感兴趣的读者可以直接查看原文

除了优化技巧之外,Miller 特别推荐了两款相关工具——Absolute HTML Compressor 和 PageSpeed1.6:

HTML 优化工具目前比较理想的是 Absolute HTML Compressor ,另外, PageSpeed1.6 中也引入了 HTML 压缩功能,不过目前只有四个简单的策略,尚处于实验性阶段。

随着 Web 前端性能受到越来越多的关注,包括 HTML 优化在内的各个领域将得到进一步的发展,并不断提高 Web 的用户体验,InfoQ 将继续关注和报道相关进展,感兴趣的读者可以查看富互联网(RIA)专题

2010-05-13 22:145190
用户头像

发布了 501 篇内容, 共 267.4 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

521我发誓读完本文,再也不会担心Spring配置类问题了

YourBatman

spring springboot @Configuration Spring配置类

肖风:数据要素市场与分布式AI平台

CECBC

终于有人把Elasticsearch架构原理讲明白了,感觉之前看的都是渣

爱嘤嘤嘤斯坦

Java elasticsearch 编程 架构

DDD实施过程中的点滴思考

冯文辉

领域驱动设计 DDD

【Java虚拟机】垃圾收集器与内存分配

烫烫烫个喵啊

Java Java虚拟机

利用 Python 爬取了 13966 条运维招聘信息,我得出了哪些结论?

JackTian

Python Linux 运维 数据分析 招聘

5分钟上手部署!!!

清风

Java Spring Boot

啃碎并发(八):深入分析wait&notify原理 猿码架构

猿灯塔

实验室里的AI激情:腾讯优图的升级修炼之路

脑极体

16种设计思想 - Design for failure

Man

Java 微服务 设计原则

Git 常用操作汇总-cheat sheet

多选参数

git GitHub gitlab gitee

领域驱动设计(DDD)实践之路(一)

vivo互联网技术

架构 领域驱动设计 DDD

漫画通信:一图看懂通信发展史

阿里云Edge Plus

Java集合总结,从源码到并发一路狂飙

给你买橘子

Java 编程 算法 集合

亚马逊:让创新科技成为重启世界的新动能

爱极客侠

Docker基础修炼3--Docker容器及常用命令

黑马腾云

Docker Linux 容器 命令

微服务架构下分布式事务解决方案

Axe

一个爱不释手的Apifox,让我扔掉 Postman的想法

给你买橘子

Java 编程 程序员 开发 Postman

数据结构与算法知识点总结

烟雨濛濛

HTTP/2 总结

guoguo 👻

Java 后端博客系统文章系统——No2

猿灯塔

编程能力 —— 寻路问题

wendraw

Java 大前端 编程能力

最大的 String 字符长度是多少?

武培轩

Java 源码 后端 JVM

区块链+高考,让世界再无冒名顶替

CECBC

SpringBoot入门:01 - 配置数据源

封不羁

Java spring springboot

创业使人成长系列 (2)- 散伙协议

石云升

创业 股权 合伙人 散伙协议

积极支持EdgeX发展,英特尔为2020 EdgeX中国挑战赛获奖队伍创造广阔合作空间

最新动态

【写作群星榜】6.27~7.10 写作平台优秀作者 & 文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

编程能力 —— 解析表达式

wendraw

Java 大前端 编程能力

编程能力 —— 异步编程

wendraw

Java 大前端 编程能力

流水账

zack

不应忽视的HTML优化_Java_崔康_InfoQ精选文章