@程序员,一文掌握 Web 应用中的图片优化技巧!(18)
3、低版本浏览器的兼容问题
这是比较次要的问题,dataurl在低版本IE浏览器,比如IE8及以下的浏览器,会有兼容性问题。
4、不利于开发者工具调试与查看
无论哪张图片,看上去都是一堆没有意义的字符串,光看代码无法知道原图是哪张,不利于某些情况下的比对。
说了这么多,有人可能不服气,既然这种方案缺点这么多,为啥它会从以前就被广泛使用呢?这要从早期的HTTP协议特性说起,在HTTP1.1之前,HTTP协议尚未实现keep-alive,也就是每一次请求,都必须走三次握手四次挥手去建立连接,连接完又丢弃无法复用,而即使是到了HTTP1.1的时代,keep-alive可以保证tcp的长连接,不需要多次重新建立,但由于HTTP1.1是基于文本分割的协议,所以消息是串行的,必须有序地逐个解析,所以在这种请求“昂贵”,且早期图片体积并不是特别大,用户对网页的响应速度和体验要求也不是很高的各种前提结合下,减少图片资源的请求数是可以理解的。
但是,在越来越多网站支持HTTP2.0的前提下,这些都不是问题,H2是基于二进制帧的协议,在保留HTTP1.1长连接的前提下,实现了消息的并行处理,请求和响应可以交错甚至可以复用,多个并行请求的开销已经大大降低,我已经不知道还有什么理由继续坚持Base64URL的使用了。
推荐阅读
- 电子竞技|和平精英:掌握这些技巧,分分钟成车神
- edg战队|王者荣耀:一招鲜吃遍天?1个英雄想打5个位置?掌握这几个完全可以
- 网游|颠覆你认知的网游土豪,程序员加班为他改游戏,还送专属服务器
- 网易|永劫无间诡异宕机事件:网易机房过热,程序员竟然祭出了干冰?
- 法术|双城之战:羁绊、海克斯强化、装备一文看懂
- 甄姬|甄姬三技能的稳定性加强,掌握5个玩法技巧对上分有帮助
- 地下城与勇士|DNF:一次给3张传说卡片!讨伐战S级奖励技巧,掌握两个要领就行
- 热血传奇|热血传奇:提升幸运属性实在太难?只是你没掌握到方法
- 庄周|敌方边路选择庄周应该如何应对?选择这些对位英雄就能掌握先机!
- 手机游戏|LOL手游掌握了流量密码,社交玩法才是国内手游的主旋律?