写点什么

不应忽视的 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:145485
用户头像

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

关注

评论

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

通过YashanDB数据库搭建分布式缓存系统的技术分析

数据库砖家

怎样通过YashanDB数据库实现实时报表生成

数据库砖家

在AI技术快速实现想法的时代,挖掘学习工具的新需求成为关键——某知名DSA教学框架需求分析

qife122

DSA教学 多语言支持

怎样做用YashanDB实现轻松迁移数据库至云端?

数据库砖家

怎样做提高YashanDB数据库事务处理效率详解

数据库砖家

通过YashanDB数据库分析用户行为数据的指南

数据库砖家

通过YashanDB数据库提升电子商务数据处理能力技术指南

数据库砖家

怎样做通过YashanDB数据库提升企业数据资产利用率

数据库砖家

如何用YashanDB实现数据加密与隐私保护

数据库砖家

用YashanDB助力企业数字化转型升级

数据库砖家

用YashanDB实现多租户环境下数据隔离的技术分析

数据库砖家

怎样用YashanDB优化数据存储降低企业成本

数据库砖家

开箱即用|基于YOLOv8的农作视觉AI——农民与农用车检测系统实战

申公豹

人工智能

怎样做数据迁移与环境切换?YashanDB全流程指南

数据库砖家

通过YashanDB实现企业数据标准化管理的指南

数据库砖家

通过YashanDB数据库支持快速应用开发流程

数据库砖家

优化YashanDB查询逻辑提高响应速度

数据库砖家

怎样做用YashanDB构建企业统一数据管理平台?

数据库砖家

怎样用YashanDB实现轻松构建微服务数据库?

数据库砖家

如何利用YashanDB实现实时数据同步和分析

数据库砖家

大数据-70 Kafka 日志清理:删除、压缩及混合模式最佳实践

武子康

Java 大数据 kafka 分布式 消息队列

基于YOLOv8的藻类细胞实时检测识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!

申公豹

人工智能

CodeBuddy IDE深度体验:AI驱动的全栈开发新时代

穿过生命散发芬芳

AIIDE CodeBuddy推荐官

LDAP: error code 32 - No Such Object

刘大猫

人工智能 算法 数据分析 智慧城市 智慧交通

使用YashanDB实现跨平台数据库数据迁移的技术解析

数据库砖家

怎样做用YashanDB提升数据库安全防护能力

数据库砖家

怎样做用YashanDB提升异构数据源整合效率?

数据库砖家

STM32与传感器技术结合打造智能行李箱 | 自动跟随与报警系统【免费开源】

申公豹

嵌入式

提升YashanDB数据库的传输与处理速度

数据库砖家

怎样用YashanDB实现数据库多级访问权限管控

数据库砖家

用YashanDB实现数据库自动错误检测的技术指南

数据库砖家

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