文档中心 >Google PageSpeed
HTML内嵌小资源
概览
通过在HTML里内嵌CSS、JS和图片,可以减少网络往返时间(RTT:Round Trip Time)。
说明
此改写通过直接插入外部的小CSS内容、JavaScript和图像文件到HTML文档,可以减少网页的请求数量。这可以减少花费来显示内容给用户,特别是在旧的浏览器的时间。此改写上不同类型的资源,以及相应的实施例的操作如下。
实例
内嵌CSS
内嵌CSS前HTML代码是这样的
<html>
<head>
<link rel="stylesheet" href="small.css">
</head>
<body>
<div class="blue yellow big bold">
Hello, world!
</div>
</body>
</html>
而small.css的代码是这样的
.yellow {background-color: yellow;}
.blue {color: blue;}
.big { font-size: 8em; }
.bold { font-weight: bold; }
使用内嵌CSS的方法重写后,HTML代码是这样的
<html>
<head>
<style>
.yellow {background-color: yellow;}
.blue {color: blue;}
.big { font-size: 8em; }
.bold { font-weight: bold; }
</style>
</head>
<body>
<div class="blue yellow big bold">
Hello, world!
</div>
</body>
</html>
这样,浏览器将去除对small.css的请求,变为把代码写在HTML里。
内嵌JavaScript
例如,HTML原先是这样写的
<html>
<head>
<script type="text/javascript" src="small.js"></script>
</head>
<body>
<div>
Hello, world!
</div>
</body>
</html>
而small.js的代码为
/* contents of a small JavaScript file */
内嵌JavaScript后,HTML代码变为这样
<html>
<head>
<script type="text/javascript">
/* contents of a small JavaScript file */
</script>
</head>
<body>
<div class="blue yellow big bold">
Hello, world!
</div>
</body>
</html>
这样,浏览器将去除对small.js的请求,变为把代码写在HTML里。
内嵌图片
这里将使用到一种图片转码技术,先把图片转换成base64编码,然后使用data:URL直接把编码写入HTML里。
例如,原先HTML代码是这样的
<html>
<head>
<title>Image test example</title>
</head>
<body>
<img src="images/Cuppa.png">
</body>
</html>
通过重写,HTML代码变成这样
<html>
<head>
<title>Image test example</title>
</head>
<body>
<img src="data:image/png;base64,...Base64 data">
</body>
</html>
这样,浏览器将去除对Cuppa.png的请求,变为内嵌到HTML里。
注,使用图片内嵌的方法时需要慎重考虑图片的base64编码的代码长度,并且视整个HTML页面有多少图片以及内嵌图片后HTML的总体积,而选择是否需要内嵌图片。
本页面中的内容已获得知识共享署名3.0许可,并且代码示例已获得Apache 2.0许可;另有说明的情况除外。
文章源地址:https://developers.google.com/speed/pagespeed/service/InlineSmallResources