写点什么

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

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

关注

评论

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

IOS上架流程

贡献超 10 万代码的新晋 committer,持续参与 Apache IoTDB 社区的“秘籍”是?

Apache IoTDB

go-zero 是如何实现计数器限流的?

AlwaysBeta

Go 微服务 限流算法 go-zero 限流器

springboot+activiti+vue+mysql轻松搞定审批!(源码)

金陵老街

MySQL教学,是不是干货你说的算

java易二三

MySQL 数据库 程序员 计算机 电脑

从零开始,快速掌握VPS服务器的使用技巧与窍门!

一只扑棱蛾子

VPS VPS服务器

SpringBoot3文件管理

Java 架构 springboot SpringBoot3

基于 KubeSphere 快速部署 ByConity

朱亚光

云原生 数据舱

一键登录和短信验证登录,到底有什么区别?

MobTech袤博科技

前端 App 前端开发 APP开发

直播预告 | 博睿学院:浅析windows Hook原理和机制

博睿数据

可观测性 智能运维 博睿数据 直播预告 博睿学院

现代数据分析的革命,ABI报表工具引领企业进入数据驱动时代

流量猫猫头

网络虚拟世界不是法外之地,必须严打网络暴力

石头IT视角

Programming abstractions in C阅读笔记:p88-p90

codists

山东布谷科技直播软件源码探索高效、稳定直播传输的技术介绍:流媒体传输技术

山东布谷科技

软件开发 直播 源码搭建 直播软件源码 流媒体技术

SOFABoot 4.0 正式发布,多项新特性等你来体验!

SOFAStack

springboot Java 分布式 jdk17 #开源

加速解锁科学智能前沿,昇思MindSpore铸就了一把“全能”钥匙

脑极体

AI

条条大路通罗马系列—— 使用 Hiredis-cluster 连接 Amazon ElastiCache for Redis 集群

亚马逊云科技 (Amazon Web Services)

Amazon

veridex执行错误分析与方案

XCG00

Android;

深化产教融合,华为与高校共建鸿蒙人才培养

极客天地

大咖云集︱2023第二届中国PMO&PM大会倒计时15天!

新消费日报

Spring 简介

小万哥

Java spring 后端 spring-cloud spring-boot

C语言驱动开发之内核解锁与强删文件

芯动大师

Vulkan-性能及精细化

江湖修行

android OpenGL ES opengl 渲染 vulkan

倒计时 1 天!1000+ 技术先锋,龙蜥社区受邀参加 OCP China Day 2023

OpenAnolis小助手

龙蜥活动 OCP China Day 2023

“铁头乔”出品!CommunityOverCode Asia 专题介绍之物联网(IoT)/工业物联网(IIOT)

Apache IoTDB

万物皆可销售:数字世界中的商业文明之光

B Impact

微软为AI投了多少钱?以及是否要担心这笔疯狂的资本支出

B Impact

go-zero 是如何做路由管理的?

AlwaysBeta

Go 源码 微服务 go-zero 路由

面试官:说说Spring中@NotEmpty、@NotBlank、@NotNull 的区别和使用

java易二三

程序员 架构 计算机

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