原文:为什么通常在发送数据埋点请求的时候使用的是 1x1 像素的透明 gif 图片? - 每天一个JavaScript小知识@Js中文网 · 码农进阶题库

原文地址:https://www.javascriptc.com/interview-tips/zh_cn/javascript/onepx-gif-image/

题目描述:

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

解题:

  • 思路一:

  • 1.没有跨域问题,一般这种上报数据,代码要写通用的;(排除ajax)
  • 2.不会阻塞页面加载,影响用户的体验,只要new Image对象就好了;(排除JS/CSS文件资源方式上报)
  • 3.在所有图片中,体积最小;(比较PNG/JPG)

  • 思路二:

  • 1.能够完成整个 HTTP 请求+响应(尽管不需要响应内容)
  • 2.触发 GET 请求之后不需要获取和处理数据、服务器也不需要发送数据
  • 3.跨域友好
  • 4.执行过程无阻塞
  • 5.相比 XMLHttpRequest 对象发送 GET 请求,性能上更好
  • 6.GIF的最低合法体积最小(最小的BMP文件需要74个字节,PNG需要67个字节,而合法的GIF,只需要43个字节)

扩展阅读: