2010-12-13 66 views
1

由于有时需要几秒钟才能加载广告,因此我正在帮助使用网站,并且我们遇到了页面加载时间方面的问题。由于使用<脚本>标签调用广告,浏览器将停止解析页面,直到广告完全加载。我们正在寻找的是从客户端加载广告的方式,以便页面可以完全显示,然后广告将开始加载,从而大大提高用户体验。如果广告使用document.write,如何在页面上最后加载广告代码或异步加载广告代码?

我已经尝试了很多事情来使这个工作,但没有解决方案实际上显示广告。你可以在http://magic.tcgplayer.com/看到这个网站。有一个广告作为横幅,位于页面顶部,另一个位于右侧的“列”中。这两个广告均使用<脚本>标签加载。我试图加载使用懒加载JavaScripts,但他们没有工作。我已经尝试使用writeCapture.js(顺便说一句很好的脚本),但广告不加载。我查看了bezen.org和labjs.com解决方案,但我不确定如何应用这些资源中的想法。另请注意,广告脚本位于远程服务器上,无法复制到我们的服务器。

任何帮助,非常感谢。

+1

哦嵌套表格布局...:/ – 2010-12-13 22:05:44

回答

0

由于事情发展,现在可以使用deferasync属性。

我使用async加载我的脚本,但defer对较旧的浏览器更安全。

请参阅W3 Schools其中包含异步和延期的详细信息。

2

将广告放入iframe中。 iframe应该用document.write()加载JavaScript。

2

我试图找到一些异步加载谷歌广告的方式,我发现它。

一个大网站douban使用iframe来保存js和异步加载iframe。

这是js代码:

function google_ad() { 
    function createIframe() { 
     var ad_frame = document.createElement("iframe"); 
     ad_frame.src = "/js/google_ad.htm"; 
     ad_frame.id = "google_ad_frame"; 
     ad_frame.scrolling = "no"; 
     ad_frame.width = "260px"; 
     ad_frame.height = "260px"; 
     document.getElementById("google_ad").appendChild(ad_frame); 
    }; 

    if (window.addEventListener) { 
     window.addEventListener("load", createIframe, false); 
    } else if (window.attachEvent) { 
     window.attachEvent("onload", createIframe); 
    } else { 
     window.onload = createIframe; 
    } 
} 

这是iframe的代码,这是从谷歌的AdSense:

<script type='text/javascript' src='http://partner.googleadservices.com/gampad/google_service.js'> 
</script> 
<script type='text/javascript'> 
    GS_googleAddAdSenseService("ca-pub-1281485759256908"); 
    GS_googleEnableAllServices(); 
</script> 
<script type='text/javascript'> 
    GA_googleAddSlot("ca-pub-1281485759256908", "ad_right"); 
</script> 
<script type='text/javascript'> 
    GA_googleFetchAds(); 
</script> 

<script type="text/javascript"> 
    GA_googleFillSlot("ad_right"); 
</script> 

所以,我就用这个:

<div id="google_ad" style="margin-top:20px;text-align:center;border:solid 17px #FFFFFF;"> 
    <script type="text/javascript">google_ad();</script> 
</div> 

并且,它加载框架。