2008-12-05 12 views
3

我爲大型網站工作。我們的營銷部門要求我們在網頁中添加更多網頁廣告跟蹤像素。跟蹤廣告系列的效果沒有問題,但爲這些像素提供服務的服務器可能並不可靠。我相信你們中的大多數人都看到拒絕完成加載的網頁,因爲來自yieldmanager.com的像素無法完成下載。如何保護網頁免受慢速廣告跟蹤網絡信標的影響?

如果像素永遠不會完成下載,onLoad永遠不會觸發,並且在我們的情況下,如果沒有該功能,頁面將無法正常工作。

我們還有戈麥斯的問題。正如你可能知道的那樣,他們在世界各地都有測量網站速度的機器人,儘管他們的方法存在缺陷,但對於我們來說,在他們的測量中看起來很好很重要。他們的機器人執行onLoad處理程序。因此,即使我使用運行onLoad的腳本在所有其他部分完成後將像素添加到頁面,如果像素需要80秒加載,我們仍然可能會得到蹩腳的Gomez分數。

我的解決方案是通過onMouseMove處理程序將像素添加到頁面,因此只有人類纔會觸發它們。你們有更好的想法嗎?

回答

6

jQuery和其他JavaScript框架可以通過使用諸如「文檔準備好」功能的方法幫助處理該問題,該功能在文檔準備好時觸發並且不需要等待所有圖像。

我會從jQuery教程引用直接:

,大多數JavaScript程序員最終做的是添加一些代碼到他們的程序,類似這樣的第一件事: 的window.onload =函數() {alert(「welcome」); } 其中是您想在加載頁面時正確運行的代碼。然而,問題是,直到所有圖像完成下載(這包括橫幅廣告),Javascript代碼纔會運行。首先使用window.onload的原因是因爲當您第一次嘗試運行代碼時,HTML「文檔」尚未完成加載。 爲了規避這兩個問題,jQuery有一個簡單的語句來檢查文件,並等待,直到它準備好被操縱,被稱爲ready事件:

$(document).ready(function(){ 
    // Your code here 
}); 

您可以使用此事件來加載這些問題的圖像。

查看此鏈接瞭解更多信息。

http://docs.jquery.com/Tutorials:How_jQuery_Works

+0

這應該做的伎倆,我使用Prototype,所以我將使用他們的同一個事件版本:document.observe(「contentloaded」,function(){...}) – 2008-12-05 16:08:42

1

我也工作的大型網站,這裏是我們所做的事情:

  1. 移動廣告調用的 底部的網頁,所以內容會首先顯示 起來(因爲JS是 同步)。

  2. 使用Ajax調用(以 允許網頁是可用的,而 的廣告加載)到一個隱藏 元素加載的廣告。

  3. 將位置移動到DOM中正確的 位置並且「未隱藏」。「

    • 根據不同的頁面,我們要麼 等待廣告完成加載 之前挪動了位置,或者我們立即移動 位置。