Show Menu
SUJETS×

Load order for rules

L'ordre de chargement de la gestion dynamique des balises par rapport à l'ordre de chargement JavaScript.
Le diagramme suivant présente l’ordre de chargement général des pages.
Le texte rouge du diagramme ci-dessus représente une activité non séquentielle. Le texte en vert, quant à lui, représente une activité séquentielle.
La section suivante explique comment les différentes options de script de balises JavaScript/tierces sont utilisées pendant les quatre phases de chargement des pages :
  • Haut de page
    • HTML séquentiel : Injecté sous <HEAD/> le script d'inclusion de la bibliothèque DTM si <SCRIPT/> les balises sont utilisées ; sinon, elles sont injectées dans la partie supérieure de <BODY/>
    • JavaScript séquentiel global : Injecté dans <HEAD/> le script d'inclusion de la gestion dynamique des balises au fur et à mesure que JavaScript inclut <SCRIPT/>
    • JavaScript séquentiel local : Injecté dans <HEAD/> le script d'inclusion de la gestion dynamique des balises au fur et à mesure que JavaScript inclut <SCRIPT/>
    • JavaScript non séquentiel : Injecté comme asynchrone <SCRIPT/> dans <HEAD> le script d'inclusion de la bibliothèque de la gestion dynamique des balises
    • HTML non séquentiel : injecté en tant que IFRAME masqué et n’a aucune incidence sur le code HTML de la page.
  • Bas de page
    • HTML séquentiel : Injecté après _satellite.pageBottom() le script de rappel avant document.write() DOMREADY, de telle sorte qu'il n'y ait aucune destruction de la page visible
    • JavaScript séquentiel global : Injecté après _satellite.pageBottom() que JavaScript inclut <SCRIPT/>
    • JavaScript séquentiel local : Injecté après _satellite.pageBottom() que JavaScript inclut <SCRIPT/>
    • JavaScript non séquentiel : Injecté comme asynchrone <SCRIPT/> dans <HEAD> le script d'inclusion de la bibliothèque de la gestion dynamique des balises
    • HTML non séquentiel : injecté en tant que IFRAME masqué et n’a aucune incidence sur le code HTML de la page.
  • Compatible DOM
    • HTML séquentiel : Ne fonctionnera pas car DOMREADY est actif et document.write() écrasera la page
    • JavaScript séquentiel global : Injecté dans <HEAD/> le script d'inclusion de la gestion dynamique des balises au fur et à mesure que JavaScript inclut <SCRIPT/>
    • JavaScript séquentiel local : Injecté dans <HEAD/> le script d'inclusion de la gestion dynamique des balises au fur et à mesure que JavaScript inclut <SCRIPT/>
    • JavaScript non séquentiel : Injecté comme asynchrone <SCRIPT/> dans <HEAD> le script d'inclusion de la bibliothèque de la gestion dynamique des balises
    • HTML non séquentiel : injecté en tant que IFRAME masqué et n’a aucune incidence sur le code HTML de la page.
  • SurChargement (chargement de fenêtre)
    • HTML séquentiel : Ne fonctionnera pas car DOMREADY est actif et document.write() écrasera la page
    • JavaScript séquentiel global : Injecté dans <HEAD/> le script d'inclusion de la gestion dynamique des balises au fur et à mesure que JavaScript inclut <SCRIPT/>
    • JavaScript séquentiel local : Injecté dans <HEAD/> le script d'inclusion de la gestion dynamique des balises au fur et à mesure que JavaScript inclut <SCRIPT/>
    • JavaScript non séquentiel : Injecté comme asynchrone <SCRIPT/> dans <HEAD> le script d'inclusion de la bibliothèque de la gestion dynamique des balises
    • HTML non séquentiel : injecté en tant que IFRAME masqué et n’a aucune incidence sur le code HTML de la page.
Les règles tierces avec du code HTML non séquentiel sont toujours placées dans des iFrames. Il n'existe pas de code HTML asynchrone, de sorte que la gestion dynamique des balises fait référence à la fonctionnalité d'iframe avec ce nom.
Even though scripts might be injected into the <HEAD/> later in the page processing like DOMREADY and ONLOAD , scripts will only appear in the proper timing sequence and be either global, local, synchronous, or asynchronous. Also, Dynamic Tag Management checks to make sure that the timing is being handled properly and if DOMREADY has already occurred, it will not attempt a page-destructive document.write() . La gestion dynamique des balises s'efforce de ne pas ventiler la page visuelle si possible. C’est pourquoi une erreur d’installation asynchrone peut s’afficher lorsque l’installation n’est pas asynchrone. Cette alerte vous permet de vous interroger sur le timing de la page et de voir que DOMREADY s’est déclenché avant le chargement de tous les scripts synchrones. If that happens, check to make sure that the pageBottom() callback is actually in the correct place immediately prior to the </body> tag. Si cela n’est pas le cas, ces types d’erreur peuvent se produire.
La file d'attente de la gestion dynamique des balises les traite dans l'ordre indiqué ci-dessus mais ne fait pas la distinction entre un script JavaScript et un script HTML lors de la phase de chargement de la page.
Cela signifie que l’ordre des règles de chargement de page dans la file d’attente détermine l’ordre dans lequel elles sortent de la file.
A simple way to determine the queue order is to look at _satellite.configurationSettings.pageLoadRules in the JavaScript console and examine the sequence.
Par exemple, vous pouvez consulter une vue complète de l’ordre dans la file d’attente des règles de chargement de page en saisissant le code suivant dans la console 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})