2011-10-12 59 views
2

我有一個精美漂亮,優雅的網站,加載速度很快,直到橫幅廣告啓用!等待檢索頁面加載時間最多爲10秒,這對我來說真的很沮喪,因爲我花了很多時間優化了網站的其他部分。加速異步加載或緩存的外部橫幅廣告

我試圖通過ajax或類似的混合成功加載廣告。基於Flash的橫幅廣告和廣告只需從廣告服務器中獲取一小段html即可正常工作。然而,有一些(PaddyPower我在談論你)返回JavaScript並使用document.write()將html廣告附加到DOM。廣告從不顯示。

的子公司代碼:

<script type="text/javascript" src="someadserver.com/impression.aspx"></script> 

返回的腳本由someadserver.com

document.write('Normal HTML code') 

它必須是與跨站腳本和安全性,但我沒有這方面的專家。有沒有辦法實現我想要的?

我不認爲緩存是一種選擇,因爲它會歪曲展示/點擊率統計信息。

同時更改任何聯屬代碼不是一個選項,因爲它是客戶的網站,我想要一個穩定可行的解決方案,不依賴於黑客的廣告代碼。

---編輯---

我修改了廣告類返回由<無腳本>標籤,並在同一時間保存廣告代碼的靜態成員包圍了廣告代碼。只是我< /身體>標籤後,我在這裏使用此代碼:

<?php foreach(Advert::getCachedAds() as $id => $code): ?> 
    <div class="advert <?php echo $id ?>" style="visibility:hidden;"> 
     <?php echo $code ?> 
    </div> 
    <?php endforeach; ?> 
    <script type="text/javascript"> 
     $(function(){ 
      $('.adContainer').each(function(index, object){ 
       var advert = $('div.' + $(object).attr('id')).html(); 
       $('div.' + $(object).attr('id')).html(''); 
       $(object).html(advert); 
      }); 
     }); 
    </script> 

這個工程相當不錯,並讓我想起了我們使用Netscape和撥入天使用舊斯庫爾圖像預裝載器腳本的連接。

+0

爲了清楚起見,廣告是否會導致您網頁內容的其餘部分延遲加載,或者您只關注整個網頁加載時間? – rdjs

+0

@rdjs - 由於廣告是內聯的,因此在呈現以下html之前,需要先解析所有外部鏈接。只要主要內容可見,我不介意外部內容是否仍在後臺悄悄加載。 –

+0

看起來不錯。儘管提及Netscape和撥號連接讓我感冒了! ;) – rdjs

回答

1

您可以將佔位符div放在您想要廣告的位置,在所有實際內容加載完畢後加載廣告,然後將加載的廣告移入到位。

這對於頁面的整體速度沒有幫助,但可以讓您看到您的實際內容,而無需等待廣告加載。

+0

不知道誰是你的廣告提供商,但這個網站似乎已經記錄了我與谷歌廣告獲得的東西類型http://semplicewebsites.com/google-ads – rdjs

+0

沒有具體的廣告提供商,該網站是一個使用廣告管理器插件的Wordpress構建。客戶從選定的投注網站複製和粘貼聯盟代碼,我寫了一個類來提取聯盟代碼並呈現在正確的位置。這個想法可以稍作修改。我會試試看。 –

+0

查看編輯後 –