在GTM标记中包含外部脚本文件的后果

时间:2013-09-20 11:08:38

标签: google-tag-manager

在GTM中,假设我有一个“自定义HTML”标记,其中包含一个外部脚本文件,如

<script type="text/javascript" src="http://externalsite.com/file.js"></script>

这个文件是怎么加载的?它会影响页面的加载时间吗?

我知道GTM脚本与标签一起异步加载,但我无法想象在这种情况下会发生什么。

3 个答案:

答案 0 :(得分:7)

在GTM自定义HTML标记中,您甚至可以使用async或defer属性:

<script async type="text/javascript" src="/path/to/file.js"></script>

进一步阅读:http://davidwalsh.name/html5-async

如果您使用的是HTML5,请键入默认值text/javascript,这样您就可以将其关闭。

或者,您可以使用匿名自调用函数异步加载:

<script>
(function(d,s){
var e = d.createElement(s),
m = d.getElementsByTagName(s)[0];
e.async = 1;
e.src = '//externalsite.com/file.js';
m.parentNode.insertBefore(e,m);
})(document,'script');
</script>

答案 1 :(得分:0)

放置在GTM自定义HTML标记中的任何外部脚本都将以与加载其他标记类似的方式加载。由于GTM标签是异步加载的,因此不会影响页面的加载时间。

答案 2 :(得分:0)

  

如何加载此文件?

异步,保持脚本顺序 尽管您将其编写为html <script>标记,但GTM会加载它来创建DOM脚本元素 这大致是使用的代码(不是直接从GTM中缩小):

var script = document.createElement('script');
script.src = '/path/to/file.js';
script.async = false;
  

是否会影响页面的加载时间?

它会影响load事件,但您可能不应该担心,因为GTM使用least impact possible to page performance.加载脚本