2013-07-10 3 views
0

Я нахожусь здесь, здесь, ребята. Я пытаюсь ускорить загрузку нашей домашней страницы. Есть две объявления, которые убивают нас для тестов скорости и удобства использования. Рекламный код - это теги скриптов с такими сценариями сценария:Загрузите несколько сценариев асинхронно

<script type="text/javascript">if(typeof(cachebuster) == "undefined"){var cachebuster = 
    Math.floor(Math.random()*10000000000)} if(typeof(dcopt) == "undefined"){var dcopt = 
    "dcopt=ist;"} else {var dcopt = ""} if(typeof(tile) == "undefined"){var tile = 1} 
    else 
    {tile++} document.write('<scr'+'ipt src="AD_URL;' + dcopt + ';tile=' + tile + 
    ';sz=728x90;ord=' + cachebuster + '?"></scr'+'ipt>'); 
</script> 
<noscript> 
    <a href="AD_URL" target="_blank" ><img src="AD_URL" border="0" alt="" /></a> 
</noscript> 

Это оригинальный код для одного из объявлений. Второй очень похож. Это требует навсегда загрузки. Иногда до 10-15 секунд. Не круто.

Я попытался сделать somethng так:

$('#HeaderAd').append(function(){ 
    var ad = '<"scr" + "ipt " type="text/javascript">if(typeof(cachebuster) == "undefined"){var cachebuster = Math.floor(Math.random()*10000000000)} if(typeof(dcopt) == "undefined"){var dcopt = "dcopt=ist;"} else {var dcopt = ""} if(typeof(tile) == "undefined"){var tile = 1} else {tile++} "</scr"+"ipt>";'; 
    var ad2 = 'document.write("<scr"+"ipt " src="http://ad.doubleclick.net/adj/ohn.auctionarms/shooting_sports_home;pos=atf_3;" + dcopt + ";tile=" + tile + ";sz=728x90;ord=" + cachebuster + "?">"</scr"+"ipt>");'; 
    var ad3 = '<noscript><a href="http://ad.doubleclick.net/jump/ohn.auctionarms/shooting_sports_home;pos=atf_3;sz=728x90;ord=123456789?" target="_blank" ><img src="http://ad.doubleclick.net/ad/ohn.auctionarms/shooting_sports_home;pos=atf_3;sz=728x90;ord=123456789?" border="0" alt="" /></a></noscript>'; 

    var ad_ = document.createElement('script'); 
    var ad_2 = document.createElement('script'); 
    ad_.type = 'text/javascript'; 
    ad_2.src = "http://ad.doubleclick.net/adj/ohn.auctionarms/shooting_sports_home;pos=atf_3;' + dcopt + ';tile=' + tile + ';sz=728x90;ord=' + cachebuster + '?"; 
    ad_.innerText = 'if(typeof(cachebuster) == "undefined"){var cachebuster = Math.floor(Math.random()*10000000000)} if(typeof(dcopt) == "undefined"){var dcopt = "dcopt=ist;"} else {var dcopt = ""} if(typeof(tile) == "undefined"){var tile = 1} else {tile++} ';// + 'document.write('+ad_2.src+');'; 
    ad_.appendChild(ad_2); 
    console.log(ad_); 
    return ad_; 
}); 

, но это дает мне Jquery ошибки и не будет загружаться. Объявление не загружается. Если я попытаюсь сделать все только с одним «document.createElement», то он все равно не понравится.

Я делаю это неправильно? Есть ли лучший способ сделать загрузку этих объявлений асинхронными?

+1

Если в объявлении используется document.write(), его нельзя добавить после загрузки страницы. вы можете написать фиктивный документ, который показывает только объявление, и показ объявления с использованием iframe, который вы .src после загрузки. или вы можете clobber метод document.write собирать вызовы и вводить этот html в свой документ всякий раз, когда он умный. – dandavis

ответ

1

В итоге я нашел классный маленький jquery-скрипт под названием jqueryAd. Это очень сработало для того, что я пытался сделать. Это задерживало загрузку рекламы и значительно улучшало скорость. Я нашел его здесь: jQueryAd

Смежные вопросы