我每次用户下载特定文件时都会尝试记录事件,但是对分析服务器的请求会不时被取消(尽管下载开始)。
以下是代码:
ga('send', 'event', {
'eventCategory': 'Addon',
'eventAction': 'Download',
'hitCallback': function() {
document.location = $scope.file.file_url;
}
});
(如果信息很重要,该文件驻留在不同的主机上)
我认为浏览器取消了请求,但为什么会发生这种情况,我该怎么做才能阻止它呢?
答案 0 :(得分:1)
用户在下载过程中是否会停留在同一页面上吗?如果用户被重定向到另一个页面(例如她下载的文件的PDF预览或感谢页面),则代码可能没有时间执行。使用JS setTimeout来延迟重定向。
除此之外,还需要更多信息和示例才能解决您的问题。
答案 1 :(得分:1)
我通过将下载属性添加到我的标签来解决了这个问题:
<a href="mydownloadurl" download>Download</a>
我注意到我在开始下载时收到了此消息:
资源被解释为文档但使用MIME类型application / octet-stream传输
在谷歌搜索后,我找到了解决方案,即添加下载属性。事实证明,ga请求不再被取消。浏览器必须被该错误搞糊涂并取消所有正在进行的请求(或其他内容)。 我现在做了一些测试,在大约20个ga的调用中,所有这些都成功了。