50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

高频量化交易机器人系统开发技术

薇電13242772558

区块链 策略模式

惊艳!四份SpringSecurity笔记带你玩转金三银四的面试题集!

996小迁

Java 架构 面试 springsecurity 笔记

面试大揭秘!从技术面被“虐”到征服CTO,全凭这份强到离谱的pdf

Java架构之路

Java 程序员 架构 面试 编程语言

MySQL慢查询(中):正确的处理姿势,你get到了吗?

架构精进之路

MySQL MySQL优化 MySQL架构 28天写作

最新区块链科普图书《区块链进化史》上市

CECBC

区块链 科普

HDFS SHELL详解(2)

罗小龙

hadoop 28天写作 hdfs shell

[0/28]软件质量的那点事(1)———引言

L3C老司机

软件测试 软件质量

智能合约DAPP软件APP开发|智能合约DAPP系统开发

系统开发

京东T7团队技术4面:线程池+索引+Spring +分布式锁+Mysql+项目等

Java架构之路

Java 程序员 架构 面试 编程语言

独角兽余额宝(Java现场面试48题):性能调优+索引+Mysql+缓存+HashMap+GC

Java架构之路

Java 程序员 架构 面试 编程语言

多熟悉一门编程语言看法

superman

搭建自己的MinDoc文档库

后台技术汇

28天写作

去中心化DAPP系统APP开发|去中心化DAPP软件开发

系统开发

极客时间架构 1 期:大作业二 学习大总结

Null

Java并发编程实战(2)- Java内存模型

技术修行者

Java 并发编程 happens-before 多线程

重学JS | 聊聊闭包

梁龙先森

大前端 编程语言 28天写作

别小看 Log 日志,它难住了我们组的架构师

Java架构师迁哥

金三银四将至!我肝了万字的Java垃圾回收,看完你还敢说不会?

编程 面试 JVM

即时通讯的原理和历史

v16629866266

大作业(二)

橘子皮嚼着不脆

极客时间架构 1 期:大作业一 根据业务编写指定输出系统概要设计

Null

同城快递系统架构

Jacky.Chen

【JS】函数实参与形参

德育处主任

JavaScript 大前端 js 28天写作

DeFi去中心化DAPP系统开发的知识科普

W13902449729

去中心化金融 DeFi去中心化系统开发

大作业(一)

橘子皮嚼着不脆

APICloud AVM多端开发 | 企业app开发解析:案例展示、加盟申请功能源码

YonBuilder低代码开发平台

大前端 小程序flutter, 跨平台 APICloud

架构师训练营 1 期:大作业(二)

piercebn

架构师训练营第 1 期

消失的同事

石君

时代发展 28天写作

太过完美!滴滴全球首发Spring5+SpringMVC5+Mybatis3.X全彩小册

Java架构追梦

Java 源码 架构 滴滴 ssm

强!腾讯老兵亲荐“从零开始学架构”教你如何成为出色的架构师?(整整2000页的笔记)

比伯

Java 编程 架构 面试 程序人生

价值 - 风险管理(二)

石云升

读书笔记 风险管理 28天写作 价值

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