前端图片优化方案
在知乎上看见的一个回答(图片较多的网站,如淘宝京东、美丽说花瓣、QQ空间、百度图片等都采用哪些技术优化图片展示?),自己做一些测试以及添加一些自己的理解整理成章。
1.使用base64编码代替图片
Base64目前主要用于HTML5、移动开发等不考虑IE6的场景中。图片大小不宜超过2KB,不然编码出来的会很长。
使用方法:
<img src="base64编码后的字符串">
或者CSS中
background-image: url(ase64编码后的字符串);
2.使用css sprite合并图片
在线css sprite:http://css.spritegen.com/
图片不宜太大
3.图片延迟加载
在我的项目中,使用的是angular框架,用的第三方插件me-lazy-load.js对界面多图进行懒加载。
使用方法:
<img lazy-src="img/login.jpg" animate-visible="true" animate-speed="0.5s" alt="用户登录">
4.使用css、svg、canvas或iconfont代替图片
CSS可以使用为元素before、after实现简单的绘图
如图:

ul.create-nav>li span:after, ul.create-nav>li span:before {
content: " ";
height: 0;
width: 0;
border-style: solid;
border-width: 20px 5px 20px 25px;
border-color: transparent;
pointer-events: none;
}
ul.create-nav>li span:before {
position: absolute;
left: 0;
border-left-color: #F3F3F4;
}
ul.create-nav>li span:after {
position: absolute;
right: -20px;
z-index: 1;
border-left-color: #D7D7D7;
}
5.加载对应尺寸
这是针对不同终端,加载符合屏幕大小的不同尺寸的图片,主要针对移动端。
6. 预加载
待续...
7.更好的图片格式
待续...

浙公网安备 33010602011771号