Show Menu
主題×

Load order for rules

動態標籤管理載入順序與JavaScript載入順序相關。
以下圖表顯示一般頁面載入順序。
上圖中的紅色文字代表非循序活動。綠色文字代表循序活動。
下一節討論如何在四個頁面載入階段中使用不同的 JavaScript/第三方標籤指令檔選項:
  • 頁面頂端
    • 循序HTML: 如果使用標籤,則插入 <HEAD/> 到DTM程式庫 <SCRIPT/> 下方的指令碼中,否則會插入 <BODY/>
    • 循序JavaScript全域: 插入 <HEAD/> 到DTM include script as script as JavaScript include <SCRIPT/>
    • 循序JavaScript本機: 插入 <HEAD/> 到DTM include script as script as JavaScript include <SCRIPT/>
    • 非循序JavaScript: 在DTM程式庫包含 <SCRIPT/> 指令碼 <HEAD> 下插入為非同步
    • 非循序 HTML: ​插入為隱藏 IFRAME ,並且不會影響頁面 HTML
  • 頁面底端
    • 循序HTML: 在「DOMPY就緒」之前插入 _satellite.pageBottom() document.write() 回呼指令碼,如此便不會破壞可見頁面
    • 循序JavaScript全域: 在JavaScript包含 _satellite.pageBottom() 後插入 <SCRIPT/>
    • 循序JavaScript本機: 在JavaScript包含 _satellite.pageBottom() 後插入 <SCRIPT/>
    • 非循序JavaScript: 在DTM程式庫包含 <SCRIPT/> 指令碼 <HEAD> 下插入為非同步
    • 非循序 HTML: ​插入為隱藏 IFRAME ,並且不會影響頁面 HTML
  • DOM 已就緒
    • 循序HTML: 將無法運作,因為 DOMREADY 會覆寫 document.write() 頁面並覆寫頁面
    • 循序JavaScript全域: 插入 <HEAD/> 到DTM include script as script as JavaScript include <SCRIPT/>
    • 循序JavaScript本機: 插入 <HEAD/> 到DTM include script as script as JavaScript include <SCRIPT/>
    • 非循序JavaScript: 在DTM程式庫包含 <SCRIPT/> 指令碼 <HEAD> 下插入為非同步
    • 非循序 HTML: ​插入為隱藏 IFRAME ,並且不會影響頁面 HTML
  • Onload (視窗載入)
    • 循序HTML: 將無法運作,因為 DOMREADY 會覆寫 document.write() 頁面並覆寫頁面
    • 循序JavaScript全域: 插入 <HEAD/> 到DTM include script as script as JavaScript include <SCRIPT/>
    • 循序JavaScript本機: 插入 <HEAD/> 到DTM include script as script as JavaScript include <SCRIPT/>
    • 非循序JavaScript: 在DTM程式庫包含 <SCRIPT/> 指令碼 <HEAD> 下插入為非同步
    • 非循序 HTML: ​插入為隱藏 IFRAME ,並且不會影響頁面 HTML
非循序 HTML 第三方規則一律會放至 iFrame。沒有非同步HTML之類的內容,因此動態標籤管理是指名稱為iframe的iFrame功能。
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() . 動態標籤管理致力於盡可能不中斷視覺化頁面。基於此原因,若未實際「非同步」安裝,可能會看見「非同步安裝」錯誤。它只是一個警告,可幫助您知道頁面上的時間可能有問題,並且 DOMREADY 在所有同步指令檔載入之前即已觸發 (但不應該觸發)。If that happens, check to make sure that the pageBottom() callback is actually in the correct place immediately prior to the </body> tag. 如果不是,則可能發生這些類型的錯誤。
動態標籤管理佇列會依照上述順序處理它們,但不會區分頁面載入階段內的JavaScript和HTML指令碼。
這表示佇列中頁面載入規則的順序會決定取消佇列的順序。
A simple way to determine the queue order is to look at _satellite.configurationSettings.pageLoadRules in the JavaScript console and examine the sequence.
例如,頁面載入規則佇列順序的完整檢視可透過輸入下列代碼至 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})