我知道piwik,google analytic和其他类似内容的跟踪代码,放在页面末尾,不会影响页面呈现。但是有一个小问题,页面仍然没有完成。用户浏览器中的进度指示器仍在循环中!如果您使用WebPageTest等工具测试您的网页(其中包含跟踪代码),您会看到跟踪代码请求的总时间数(至少2个请求一个用于JS,另一个用于跟踪)。
我使用window.setTimeout(trackingfunction, 3000)
做了一个简单的延迟。跟踪代码将在执行该行后三秒触发!猜测页面完全在那时完成。它会导致指针在页面加载后停止,并且在调用跟踪代码时不再循环。在the tools中,跟踪代码也未显示,报告的时间是页面实时。
是否正确跟踪?它是否跟踪启用javascript的机器人?
PS:
我读了this article,他也做了一些事情来推迟加载第三方javascripts。但我无法决定他的工作是否正确?
答案 0 :(得分:4)
在load
事件触发之前,推迟加载Google AnalyticsJS文件是有利有弊的。最终,您决定做的是基于您个人网站的需求。这里没有一个通用的答案。
load
事件将更快发生。这将(如您所述)意味着微调器不会旋转很长时间,性能分析工具会报告您的页面加载速度更快。ga()
函数有任何引用,则会冒这些调用产生错误的风险。如果您要延迟下载analytics.js
脚本,至少应该在ga()
中运行<head>
初始化代码,因为它非常小,它的性能影响可以忽略不计。<head>
中的部分原因是为了确保尽快加载它们,并避免出现错误导致其无法加载的问题。底线:是的,没关系,但只有在你知道自己在做什么,了解其含义,以及你了解的情况下才能做到这一点。缺点是不要关心它们。
Ilya Grigorik写了good article关于<script async>
如何解决您对此的一些担忧。您还应注意,Google Analytics的recommended snippet也使用<script async>
。