规则的加载顺序

动态标签管理加载顺序与JavaScript加载顺序相关。

下图显示了一般页面加载顺序。

注意

上图上的红色文本表示非顺序活动。 绿色文本表示顺序活动。

以下部分讨论了在四个页面加载阶段如何使用不同的JavaScript/第三方标记脚本选项:

  • 页面顶部

    • 顺序HTML: 如果使 <HEAD/> 用标签,则注入到DTM <SCRIPT/> 库下包括脚本,否则注入到 <BODY/>
    • 顺序JavaScript全局: 注入到DTM <HEAD/> 下的包括脚本(作为JavaScript包括) <SCRIPT/>
    • 顺序JavaScript本地: 注入到DTM <HEAD/> 下的包括脚本(作为JavaScript包括) <SCRIPT/>
    • 非顺序JavaScript: 在DTM库下 <SCRIPT/> 注入 <HEAD> 异步包含脚本
    • 非顺序HTML: 隐藏时注 IFRAME 入,不影响页面HTML
  • 页面底部

    • 顺序HTML: 在回调 _satellite.pageBottom() 脚本之 document.write() 后插入DOMREADY之前的脚本,以便不会破坏可见页面

    • 顺序JavaScript全局: 作为JavaScript _satellite.pageBottom() 包括 <SCRIPT/>

    • 顺序JavaScript本地: 作为JavaScript _satellite.pageBottom() 包括 <SCRIPT/>

    • 非顺序JavaScript: 在DTM库下 <SCRIPT/> 注入 <HEAD> 异步包含脚本

    • 非顺序HTML: 隐藏时注 IFRAME 入,不影响页面HTML

  • DOM Ready

    • 顺序HTML: 将不工作,因 DOMREADY 为处于活动状 document.write() 态并将覆盖页面
    • 顺序JavaScript全局: 注入到DTM <HEAD/> 下的包括脚本(作为JavaScript包括) <SCRIPT/>
    • 顺序JavaScript本地: 注入到DTM <HEAD/> 下的包括脚本(作为JavaScript包括) <SCRIPT/>
    • 非顺序JavaScript: 在DTM库下 <SCRIPT/> 注入 <HEAD> 异步包含脚本
    • 非顺序HTML: 隐藏时注 IFRAME 入,不影响页面HTML
  • 加载(窗口加载)

    • 顺序HTML: 将不工作,因 DOMREADY 为处于活动状 document.write() 态并将覆盖页面
    • 顺序JavaScript全局: 注入到DTM <HEAD/> 下的包括脚本(作为JavaScript包括) <SCRIPT/>
    • 顺序JavaScript本地: 注入到DTM <HEAD/> 下的包括脚本(作为JavaScript包括) <SCRIPT/>
    • 非顺序JavaScript: 在DTM库下 <SCRIPT/> 注入 <HEAD> 异步包含脚本
    • 非顺序HTML: 隐藏时注 IFRAME 入,不影响页面HTML

非连续HTML第三方规则始终放置在iFrames中。 没有异步HTML这样的名称,因此动态标签管理使用该名称引用iFrame功能。

注意

尽管脚本可能会注入到页 <HEAD/> 面处理(如和 DOMREADY )的后 ONLOAD期,脚本将仅以适当的时序出现,并且是全局、本地、同步或异步的。 此外,动态标签管理会检查以确保正确处理时间,如果 DOMREADY 已经发生,则不会尝试破坏页面 document.write()。 动态标签管理尽力避免在可能的情况下中断可视页面。 因此,当安装实际上可能不是“异步”时,您可能会看到“asyc安装”错误。 它只是一个警报,可帮助您识别页面上的时间有点可疑,并且在所有同步脚本加载 DOMREADY 之前已按应有方式触发。 如果发生这种情况,请检查以确 pageBottom() 保回调在紧靠标记之前的正确位 </body> 置。 否则,可能会发生这些类型的错误。

动态标签管理队列按上述顺序处理它们,但不区分页面加载阶段中的JavaScript和HTML脚本。

这意味着页面加载规则在队列中的顺序决定了它们的离队顺序。

确定队列顺序的简单方法是在JavaScript控 _satellite.configurationSettings.pageLoadRules 制台中查看并检查序列。

例如,在JavaScript控制台中输入以下代码,即可看到页面加载规则队列顺序的完整视图:

 _satellite.each(_satellite.configurationSettings.pageLoadRules,function(i){(i.event=='pagetop')?_satellite.notify(i.event+': '+i.name,1):false})
 _satellite.each(_satellite.configurationSettings.pageLoadRules,function(i){(i.event=='pagebottom')?_satellite.notify(i.event+': '+i.name,1):false})
 _satellite.each(_satellite.configurationSettings.pageLoadRules,function(i){(i.event=='domready')?_satellite.notify(i.event+': '+i.name,1):false})
 _satellite.each(_satellite.configurationSettings.pageLoadRules,function(i){(i.event=='windowload')?_satellite.notify(i.event+': '+i.name,1):false})

在此页面上

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free