谷歌分析为什么需要请求GIF文件?
这是因为GIF比仅使用JavaScript可以访问更多的数据。是用来获取用户的IP地址吗?
谷歌分析为什么需要请求GIF文件?
这是因为GIF比仅使用JavaScript可以访问更多的数据。是用来获取用户的IP地址吗?
谷歌的JavaScript需要以某种方式将您的页面浏览详细信息传输到他们的服务器。Ajax不能跨域使用,因此提交信息的唯一方法是从谷歌服务器请求文件,并在查询字符串中传递必要的信息。为了方便这一点,必须使用标准的HTML标签请求某种内容。在不影响页面本身的情况下,最简单的方法是加载一个1x1透明GIF。请注意,在谷歌脚本(和其他脚本)的情况下,实际上并没有将此图像添加到页面中。它只是通过javascript语句加载。
var img1 = new Image();
img1.src = 'http://path/to/file.gif?otherinfohere';
这会加载图片但不会将其添加到页面中。也可以使用类似以下的脚本标签加载信息:
<script src="http://path/to/script.js?otherinfohere" type="text/javascript"><script>
然而,与图片相比,用户更有可能阻止 JavaScript,因此更安全的方法是请求图像。至于为什么他们会使用 gif 而不是 jpg,如果一个恶意浏览器添加了该图像到页面中,gif 更安全。透明的 gif 不太可能对布局产生负面影响,而 1x1 的 jpg 则会在页面某处留下一个 1 像素点。
编辑:关于用户阻止 JavaScript 的评论,可以在 noscript 标签中添加包含静态信息的 gif 请求,以便在禁用 JavaScript 的情况下进行基本跟踪。据我所知,GA 没有这样做,但一些其他的网络分析提供商确实这样做。
utmsr=1280x1024
(屏幕大小)。 Google代码中有一个参数列表。XMLHttpRequest
。XMLHttpRequest
限制。http://www.perlmonks.org/?node_id=7974
最小的透明GIF为43个字节。
http://garethrees.org/2007/11/14/pngcrush/
最小的透明PNG-24(旧浏览器无法显示)为67个字节。
最小的(不透明)JPEG 为134个字节。
公式很简单!尺寸越大,费用越高。
这与跨域无关。他们本可以使用 JSONP 来实现。