javascript - 在 "modern"浏览器上异步加载 Google Analytics 是否还有好处?

标签 javascript google-analytics

从阅读中可以看出,异步加载 Google Analytics(分析)似乎主要是一种加速加载 JavaScript 时阻塞的浏览器(例如 IE6 和 IE7)的策略。在并行加载 JavaScript 并且通常可以更好地处理 JavaScript 的较新浏览器中,优势似乎有所减弱。

如果我们只考虑“较新的浏览器”(比如 IE8+ 和 1-2 年前的 Firefox 和 Chrome 版本),使用异步加载脚本是否仍然有显着优势?如果有,它们是什么?

最佳答案

即使现代浏览器改进了并行加载和其他方面的性能,它们仍然必须遵守两条规则,当您使用简单的脚本标签时,它们会迫使它们做出一些牺牲:

  • 脚本标签可以“就地”改变dom。如果你的 js 有一个 document.write() 调用,它必须发生在脚本标签所在的位置,而不是代码执行时浏览器可能正在加载的位置,并且浏览器没有在它具有实际的 js 文件之前知道您是否正在执行此操作的方法。

    script 标签上的 defer 属性让浏览器知道您的脚本不会包含任何此类 dom 修改调用,它可以安全地继续加载其他所有内容并运行 javascript每当它得到它。

  • 脚本标签必须按顺序处理。如果您包含两个脚本(例如,google analytics 和 facebook),则在第一个脚本运行之前,您的浏览器不允许运行第二个脚本。换句话说,如果您使用的第三方服务之一速度变慢,您的整个页面都在等待它。

    async 属性与 defer 具有相同的效果(“我保证我不会尝试就地更改 dom”),但它也告诉浏览器脚本标记不必在其后的标记之前运行,浏览器可以在需要/可以时运行它。

    所以在那个例子中,如果你的脚本是异步加载的,它会告诉你的浏览器,如果它在分析文件之前获取 facebook js 文件,它可以立即运行它而无需等待。

关于javascript - 在 "modern"浏览器上异步加载 Google Analytics 是否还有好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18518857/

相关文章:

javascript - 通过任何方法重定向到新选项卡。 (JS、Symfony PHP 组件等)

firebase - 如何为 Google Analytics : App + Web property created from Firebase? 配置增强测量

google-analytics - 为什么Google Analytics(分析)报告实时事件?

javascript - html before after 属性不起作用

javascript - 检查变量相等性的语法

javascript对象文字模式构造函数错误

google-analytics - Google Analytics(分析)网址限制

javascript - 如何根据表单提交跟踪 Google Analytics(分析)中的转化?

android - 跨平台移动应用程序中的 Google Analytics

Javascript 动态变量