一,图片体验的优化。css
在手机上显示图片,速度是一个很是重要的体验点,试想,若是您打开一个网站,发现里面的图片一直显示失败或者是x,稍微作得好一点的,多是一个不消失的loading或者是菊花等等,但无论如何, 没能快速的拉取和展现图片对用户体验是一个极大的挑战。那么,手机上的图片体验如何作呢?这里笔者有些小总结:前端
1,减小图片的大小。在失真度和图片大小中作好折衷,尽可能利用工具减小图片的size,也能够考虑利用不一样的图片格式。缓存
2,减小图片的请求数。能够考虑把多个图片利用相似css sprite的方式进行合并,这样能够加载一次便可;服务器
3,考虑缓存。对图片在客户端进行必定的缓存,设置好缓存时长和更新机制;架构
4,考虑使用cdn进行加载图片,作到就近接入访问;app
5,解决DSN劫持的问题。在手机业务上的经验告诉咱们,极可能某些地区,某些运营商把咱们的域名封掉或者劫持了,这样,图片的域名解释出来的IP却不是咱们提供图片服务的IP,而且这种状况很难发现, 由于,若是运营商经过抽样随机劫持,就很难发现。异步
解决办法有几个思路:工具
.去掉dns,改为直接访问IP的方式,但须要解决根据用户的ip获取最近图片服务的ip地址,实现上:这里cgi在吐出访问图片的地址的时候,获取用户的来源网关IP,调用IP地址库判断来源IP所属地和运营商,而后下发对应的图片部署接入IP, 客户端使用IP直连图片服务器,快速的访问资源。问题是,有实现成本,得业务本身去实现相似一个dns解释的逻辑 ,特别是图片放到cdn的话,这样改造就没法使用cdn带来的加速服务能力。性能
.作好dns劫持的监控,实际上图片dns解释到的vip list确定是在咱们的一个白名单内,若是不是,则确定属于dns劫持,客户端能够在某个时候拉取一下咱们的viplist,做为监控和判断是否dns劫持的问题,若是dns的ip地址 不在白名单内,则替换使用白名单内的ip进行访问。优化
.考虑备用域名的方式,即若是一个域名拉取不到,改用备用域名进行访问,固然若是备用域名也被劫持,那就不行了。