了解无法在Adword再营销代码的<script>标记中使用“async”的原因

时间:2017-09-19 14:47:13

标签: javascript asynchronous google-adwords

我正在努力提高页面加载速度以减少页面的块呈现我使用 async 标记或 defer 插入各种.js文件。

&#xA;&#xA;

不幸的是,我在“AdWords再营销代码”文档中读到了以下

&#xA;&#xA;
&#xA;

请不要修改脚本标记以使用async参数,因为它&#xA;导致不可预测的行为。

&#xA;
&#xA;&#xA;

参考: https://developers.google.com/adwords-remarketing-tag/

&#xA;&#xA;

因此我并不是真的明确什么是不插入

&#xA;&#xA;
 &lt; script async src =“https://www.googleadservices.com/pagead/conversion.js “&gt;&lt; / script&gt;&#xA;  
&#xA;&#xA;

与建议的

&#xA;&#xA;
 < code>&lt; script src =“https://www.googleadservices.com/pagead/conversion.js”&gt;&lt; / script&gt;&#xA;  
&#xA;&#xA ;

如果我添加 async 标签,我可以在google开发人员中清楚地看到网络优先级从“高”变为“低”。但这种“不可预测的行为”会是什么?究竟会发生什么?

&#XA;

2 个答案:

答案 0 :(得分:0)

如果要同步加载脚本,那么你应该坚持下去。将它们按顺序加载的后果可能是未定义的变量/对象或未满足的依赖项。如果在其他脚本设置变量之前尝试访问变量,则会遇到某种类型的停止异常。您可能不会在实现中遇到这种情况,但请放心,这只是运气,这种类型的错误可能发生在受限制或较慢的连接上。

答案 1 :(得分:0)

该脚本利用Document.write将一些元素插入页面。

摘自Document.write的文档:

  

注意:使用延迟或异步脚本的document.write将被   忽略,您将收到诸如“对document.write()的调用   从异步加载的外部脚本中删除”   错误控制台。

minified script中,您可以在位置32:181和32:382找到两次d.write