为什么发送数据埋点请求的时候使用的是 1x1 像素的透明 gif 图片?

前沿

为什么请求数据埋点的时候用透明的GIF 图片呢?

我也是查阅了相关资料,知道这样的好处:

  从下面几个点出发:

        1. 没有跨域问题,一般这种上报数据,代码要写通用的,img 天然支持跨域;(排除 ajax)

        2.不会阻塞页面加载,影响用户的体验,只要 new Image 对象就好了, 通过它的onerror和onload事件来检测发送状态;(排 除 JS/CSS 文件资源方式上报)

        3.在所有图片中,简单、安全、相比PNG/JPG体积最小;(比较 PNG/JPG)(tip:最小的BMP文件需要74个字节,PNG需要67个字节,而合法的GIF,只需要43个字节)

 

举个例子:

let _img = new Image(); 
_img.src = "https://example.com/aaa?a=1&b=2"

 

posted @ 2021-03-02 14:48  -鹿-  阅读(959)  评论(0编辑  收藏  举报