为什么Google Analytic会请求GIF文件?

ale*_*lex 14 google-analytics

为什么Google Analytic会请求GIF文件?

是因为GIF允许访问比单独的JavaScript更多的数据.是获取用户的IP地址吗?

Bri*_*nna 16

即使启用了JavaScript,分析也会请求GIF文件.如果你看一下图像的GET参数,它包含了很多关于浏览器的信息.像utmsr=1280x1024(屏幕尺寸)的东西.Google Code有一个参数列表.

它使用图像请求来发送有关浏览器的信息XMLHttpRequest.

现在,要真正回答原始问题,谷歌可能会这样做以解决跨域XMLHttpRequest限制.

  • 我认为谷歌使用图像请求只是因为他们不需要接收任何信息,只发送.图像请求是执行此操作的最轻量级方法. (2认同)
  • 这个答案没有给出任何有用的东西。@mylesmg 你的答案是正确的。 (2认同)

Chr*_*ris 16

Google的javascript必须将您的页面视图的详细信息传输给他们的服务器.Ajax不能跨域使用,因此提交信息的唯一方法是从Google服务器请求文件,并在查询字符串中传递必要的信息.为此,必须使用标准HTML标记请求某种形式的内容.在不影响页面本身的情况下执行此操作的最简单方法是加载1x1透明gif.请注意,对于Google脚本(以及其他),此图像实际上并未添加到页面中.它只是通过javascript语句加载

var img1 = new Image();
img1.src = 'http://path/to/file.gif?otherinfohere';
Run Code Online (Sandbox Code Playgroud)

这会加载图像而不将其添加到页面.也可以使用脚本标记加载信息,如下所示:

<script src="http://path/to/script.js?otherinfohere" type="text/javascript"><script>
Run Code Online (Sandbox Code Playgroud)

但是,用户比图像更容易被javascript阻止,因此更安全的路线是请求图像.至于为什么他们会使用gif而不是说jpg,如果流氓浏览器实际上将图像添加到页面,gif会更安全.透明的gif不太可能对布局产生负面影响,因为1x1 jpg会在页面的某处留下1像素点.

编辑:要添加我对有阻止javascript的用户的评论,可以在noscript标记内添加包含静态信息的gif请求,以便即使在禁用javascript的情况下也允许基本跟踪.据我所知,GA没有这样做,但其他一些网络分析提供商也这样做.


Pin*_*juh 13

http://www.perlmonks.org/?node_id=7974

最小的透明GIF是43个字节.

http://garethrees.org/2007/11/14/pngcrush/

最小的透明PNG-24(旧版浏览器也无法显示)为67字节.

http://www.techsupportteam.org/forum/digital-imaging-photography/1892-worlds-smallest-valid-jpeg.html

最小(不透明)JPEG是134字节.

数学很简单!更大的尺寸=更多的成本.

  • **67**字节,而不是73字节.你必须一直读到最后才能获得妙语! (5认同)