H5移动应用常常是一个手机网页应用,或被包装成一个安卓或苹果的应用程序。
在开发完成后,将本地开发版本上线时常常需要优化,主要的优化思路是:

  • 减少交互次数,即减少对服务器的访问,主要手段有缓存优化、文件合并等。
  • 减少交互数据,主要手段有文件最小化(minify)、WEB服务器配置gzip压缩等。

图片优化 - 制作精灵图

图片优化有以下思路:

  • 小图片合并。减小对服务器的访问次数,加快图片显示,尤其是各种小图标。
  • 图片在用到时再加载,尽量不要打开应用就加载。例如逻辑页中的图片,应该等逻辑页显示时才去加载。一般由应用框架保证,如筋斗云框架中,天然支持逻辑页中图片的按需加载。
  • 使用合理的图片格式,控制图片大小。例如使用webp格式图片等,不在本文讨论范围内。

本文主要介绍小图片合并的方法,也就是常说的精灵图(sprite)的制作。

定义一个icon.css文件,包含用到的小图标如下:

.icon-back {background-image: url(icon/16/back.png);
}
.icon-menu {background-image: url(icon/16/menu.png);
}
.icon-add {background-image: url(icon/16/add.png);
}...

我们先将所用到的图标合并成一列竖图,每一行一个图标,假定生成的图片为icon-16.png
根据icon.css生成icon.out.css文件,修改背景图的位置属性如下:

icon.out.css:

.icon-back {background-image: url(icon/icon-16.png); background-size: 16px !important; background-position: 0 0px !important;
}
.icon-menu {background-image: url(icon/icon-16.png); background-size: 16px !important; background-position: 0 -16px !important;
}
.icon-add {background-image: url(icon/icon-16.png); background-size: 16px !important; background-position: 0 -32px !important;
}
...

这时,在H5应用中直接使用icon.out.css即可。
上面过程可以使用筋斗云工具jdcloud-sprite完成。注意:使用前应下载安装imagemagick软件,用于图片合并。

php jdcloud-sprite.php icon.css

这样便可生成icon.out.css以及合并后的图片。此外,它可以支持生成2倍图、按图片宽度分组生成的选项,具体可参考筋斗云工具文档(doc/jdcloud-sprite.html)。

实际在使用筋斗云移动框架的项目中,不用直接手工调用上述命令,而是在tool/Makefile中设置好命令:

sprite: ../server/m2/icon.out.css../server/m2/icon.out.css: ../server/m2/icon.cssphp jdcloud-sprite.php $< -2x -group -sprite icon/icon@2x.pngclean-sprite:-rm -rf ../server/m2/icon.out.css ../server/m2/icon/icon@2x-*.png

设置好后,直接运行tool/make-sprite.sh即可生成精灵图和相应的css文件。

H5移动应用的发布优化(四)图片优化相关推荐

  1. 前端每周清单第 34 期:Vue 现状盘点与 3.0 展望,React 代码迁移与优化,图片优化详论

    新闻热点 国内国外,前端最新动态 Microsoft 宣发面向 iOS 与 Android 平台的 Microsoft Edge:为了保证 Windows 用户各平台使用体验的一致性,Microsof ...

  2. 前端每周清单第 34 期:Vue 现状盘点与 3.0 展望,React 代码迁移与优化,图片优化详论... 1

    前端每周清单第 34 期:Vue 现状盘点与 3.0 展望,React 代码迁移与优化,图片优化详论 作者:王下邀月熊 编辑:徐川 前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解 ...

  3. MySQL优化四(优化表结构)

    MySQL优化四(优化表结构) MySQL优化四(优化表) 昨晚吃吃喝喝的太多,熬夜到凌晨二点.今天头发杂乱,脸庞憔悴,像是吸毒了.下午去买衣服,肚子一看大了不少.奈何女朋友还没有一个,就已经发福了. ...

  4. 前端性能优化(图片优化)

    从输入URL到页面加载完成的过程:首先通过DNS(域名解析)把URL解析为对应的IP地址,然后与该IP地址确定的服务器建立起TCP网络连接.随后向服务器发送HTTP请求,服务器处理完HTTP请求后把目 ...

  5. 网站SEO优化之图片优化方法

    网站SEO优化之图片优化方法 网站中图片的优化是很多站长都比较容易忽略的细节,我们知道,对于搜索引擎目前的技术来讲,是无法识别图片的内容信息的,但为了提升用户体验,我们在进行文章或者网站布局时,必须进 ...

  6. 前端性能优化之图片优化

    图片优化的价值 为什么要做图片优化?图片优化的收益有多大? Google官方的最佳实践中关于图片优化有下面这样一段描述: 对于网页来说,在所下载的字节数中,图片往往会占很大比例.因此,优化图片通常可以 ...

  7. Web 性能优化: 图片优化让网站大小减少 62%

    摘要: 压缩各种格式的图片. 原文:Web 性能优化: 图片优化让网站大小减少 62% 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 这是 Web 性能优化的第二篇,上一篇在下面看点 ...

  8. html的细节优化,网站图片优化细节放送(seo技巧)

    做seo的老铁们难免会遇到网站图片优化处理不到位,大多数的套话都是围绕着数据来说的,其实这也没什么,重点是我们的细节处理不到位就算数据正确也不好办,那么接下来让凯夜seo为您放送一些图片优化的细节,规 ...

  9. 前端每周清单第 34 期:Vue 现状盘点与 3.0 展望,React 代码迁移与优化,图片优化详论...

    作者:王下邀月熊 编辑:徐川 前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点:分为新闻热点.开发教程.工程实践.深度阅读.开源项目.巅峰人生等栏目.欢迎关注[前端之巅 ...

  10. Android内存优化之图片优化

    关于图片优化,大概如下 为什么要进行图片优化 相信大概刚开始学习Android的时候有过图片过大而直接报错的情况,下面简单介绍一下OOM问题,Android支持的图片格式及图片优化的几种方式 什么是O ...

最新文章

  1. STL中用erase()方法遍历删除元素
  2. python查看文件夹文件的所有权限,Python判断某个用户对某个文件的权限
  3. C#编写串口通信程序(转)
  4. E:K-periodic Garland(DP)
  5. 关于状态更新时间字段取值的问题
  6. python2.7中没有zlib库的解决方案(zipimport.ZipImportError: can't decompress data; zlib not available)
  7. mysql 去除空格
  8. Python动态页面抓取超级指南
  9. PHP之 直播开发后端需要做什么——准备工作
  10. 关于来料检验中多退货的问题
  11. ArcGIS导出地图后部分图例不显示
  12. win11配置jdk1.8环境变量
  13. 电子计算机扫描仪系统,人体三维扫描仪
  14. python资本市场财务数据分析_不懂财务数据分析?教你一分钟看懂财务报表
  15. 正余弦信号的DFT频谱分析
  16. 基于C# winform实现随机点名小工具(支持csv导入)
  17. 【大咖说】激活数据价值,永洪科技智胜法则
  18. 搜狗输入法用户id非法,表情包无法搜到图片,显示异常.......
  19. Docker部署wildfly
  20. 从零开始一起学习SLAM | 你好,点云

热门文章

  1. (转)常用PC服务器LSI阵列卡配置
  2. 狂野飙车4java游戏音乐_狂野飙车8赛车背景音乐名称大全
  3. 英语听力 Listen To This 全套下载
  4. python拨打网络电话_python 网络电话
  5. linux 建树软件,新一代建树工具IQ-Tree介绍
  6. spring boot 整合 jpa
  7. 很酷的瞄准镜样式光标效果
  8. 【EXCEL】用公式筛选符合条件的内容,输出固定格式字符
  9. Qt笔记11:qt如何设置应用程序图标和可执行程序图标
  10. 【Python】创蓝253云通讯平台国际短信API接口DEMO