规则的加载顺序

动态标签管理加载顺序与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})

On this page

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now