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

  • 避免跨域(img 天然支持跨域)
  • 利用空白gif或1x1 px的img是互联网广告或网站监测方面常用的手段,简单、安全、相比PNG/JPG体积小,1px 透明图,对网页内容的影响几乎没有影响,这种请求用在很多地方,比如浏览、点击、热点、心跳、ID颁发等等,
  • 图片请求不占用 Ajax 请求限额
  • GIF的最低合法体积最小(最小的BMP文件需要74个字节,PNG需要67个字节,而合法的GIF,只需要43个字节)
  • 不会阻塞页面加载,影响用户的体验,只要new Image对象就好了,一般情况下也不需要append到DOM中,通过它的onerror和onload事件来检测发送状态。
  • 示例:
    <script type="text/javascript">
     var thisPage = location.href;
     var referringPage = (document.referrer) ? document.referrer : "none";
     var beacon = new Image();
     beacon.src = "http://www.example.com/logger/beacon.gif?page=" + encodeURI(thisPage)
     + "&ref=" + encodeURI(referringPage);
    </script>

     

posted @ 2019-07-22 10:52  来亦何哀  阅读(1690)  评论(0编辑  收藏  举报