2011-09-14 41 views
0

我有一個客戶,誰是建立一個系統,遊客到一個頁面的某一部分「A」,將收到一個JavaScript重定向到另一頁「B」。 (我知道,不理想,但不是我的主意...)如何確保在觸發Web分析代碼之前發生JS重定向?

他們正在使用的部署兩個頁面上基於標籤的Javascript網站分析解決方案(的Omniture SiteCatalyst的)。

我的問題是,對於我們重定向的訪問者,我們可以確保重定向將觸發,並且在頁面「A」網頁分析代碼觸發並觸發頁面之前,它們將關閉頁面「A」視圖?

是否存在需要以編程方式完成的事情,並且是否存在或多或少的「萬無一失」的方式來確保頁面「A」的分析代碼不會觸發,或者任何解決方案都有一些泄漏瀏覽器和網絡/客戶端PC速度等變化?

+0

是谷歌anyalytics代碼使用的是同步還是異步?如果它是同步的,只需在ga代碼之前包含重定向。如果它是異步的,它會更復雜,但如果你小心的話可能是可行的。 –

+0

即使它是同步的,在重定向代碼觸發和重定向實際發生之間不會有延遲嗎? – Ascendant

回答

2

你不得不結構的代碼看起來像這樣(僞):

if(on_page_a){ 
    if(user_requires_redirect){ 
    redirect(PAGE_B); 
    } else { 
    fire_analytics(PAGE_A); 
    } 
} else { 
    fire_analytics(PAGE_A); 
} 

希望是有道理的

+0

我想你可以跳過'如果(on_page_a)'條件 - 該代碼進入網頁A上,所以沒有必要檢查一下就可以了。否則我同意你的看法。 –

+0

從的問題,據我瞭解,他有兩個頁面上相同的分析代碼,這就是爲什麼我把它.. THX – SuitedSloth

+0

謝謝,我想這可能是一起去的技術和政治上的限制,我們有最好的方式。 – Ascendant

5

的一種方式,你可以肯定的是返回JavaScript代碼,做重定向,沒有別的。無論如何,當用戶重定向時,是否有任何理由加載頁面的內容?

換句話說,在你選擇的服務器端語言:

if in experiment B: 
    emit javascript redirection template 
else: 
    emit template for page A 

其中,由JavaScript重定向模板無非是:

<script>window.location.href="path/of/page/B";</script> 
+0

那裏你的服務器端語言是什麼?我不熟悉它。 –

+0

理想情況下,如果訪問者按照您提及的方式通過測試,我們只會加載模板。然而,如果它真的很理想,那麼測試和重定向都將是服務器端的,但由於政治和技術混雜,這兩種方法可能都不可行。但是,由於分析代碼也是JS,因此只需將該部分包含在if-else邏輯中就足夠合理。 – Ascendant

+0

@Surreal Dreams,我只是提供僞代碼,但你可以用你喜歡的任何語言編寫你的服務器。 –

相關問題