为什么谷歌分析使用一个像素的图片来传输数据
Why does Google Analytics use a one-pixel picture to transfer data?
Google Analytics嵌入了一个1像素的GIF, URL如下:
http://www.google-analytics.com/__utm.gif?utmwv=5.1.5&utms=5&utmn=1532897343&utmhn=www.douban.com&utmcs=UTF-8&utmsr=1440x900&utmsc=24-bit&utmul=en-us&utmje=1&utmfl=10.3%20r181&utmdt=%E8%B1%86%E7%93%A3&utmhid=571356425&utmr=-&utmp=%2F&utmac=UA-7019765-1&utmcc=__utma%3D30149280.1785629903.1314674330.1315290610.1315452707.10%3B%2B__utmz%3D30149280.1315452707.10.7.utmcsr%3Dbiaodianfu.com%7Cutmccn%3D(referral)%7Cutmcmd%3Dreferral%7Cutmcct%3D%2Fgoogle-analytics-architecture.html%3B%2B__utmv%3D30149280.162%3B&utmu=qBM~
为什么不使用AJAX调用?使用一个像素的GIF有什么好处?
因为您不能真正实现跨域AJAX (CORS除外,但这是另一回事,而且是最近出现的现象,没有得到普遍支持)。AJAX用于同源请求。此外,Google Analytics源自Urchin,后者实际上早于AJAX技术的采用。
请求图像是分析服务"请求"某些东西作为向第三方服务器发送某些东西的一种相当标准的做法。AJAX/CORS没有真正意义的原因是,您实际上并没有请求一个重要的资源以在页面上使用,因此您希望请求本身尽可能快速和少开销。
分析服务偶尔处理从客户端发送数据的另外两种方式是:包含一个不可见的iframe,使用iframe src上的查询字符串传递分析数据
请求一个图像,而不是返回一个图像,返回一个空的HTTP 204头响应。
最大化兼容性。例如,手机浏览器可能不支持AJAX,因此可能提供不充分的结果。但是,嘿,谷歌做了很多没人能解释的奇怪的事情。
相关文章:
- 在Javascript中,检查一个区域中的所有像素是否都为空
- 一个很好的方法来抵消所有绘制到画布上的0.5像素
- 我将如何在一个网页上放置多个Facebook跟踪像素
- 如何从 HTML5 画布中移除每隔一个像素
- 如何在页面加载后使一个部分 100vh 高度变成像素
- 在画布上逐像素手动绘制一个圆
- 触发没有一个像素.gif的javascript事件
- 如何打印其中一个像素的红色、绿色和蓝色值
- 在Gumroad覆盖中添加一个facebook转换像素
- 为给定的X和Y在canavs imageData上设置一个像素
- 如何停止图像在一个特定的像素
- 如何动画的东西到一个固定的像素值?Jquery
- 使用Javascript和Canvas从图像中移动一个像素
- JS - windows的宽度从大于800px的像素减少到800px以下会触发一个动作
- 如何判断一个像素的颜色是否为红色?与jquery()
- 我如何改变一个宽度参数在jQuery给定的像素整数成百分比
- 我可以用一个图像像素调用多个跟踪像素吗
- 为什么谷歌分析使用一个像素的图片来传输数据
- 一个像素填充,用画布
- 使用asp.net MVC在图片上选择一个或多个像素