1

我正在帮助一个网站,我们在页面加载时间方面遇到问题,因为广告有时需要几秒钟才能加载。由于广告是使用 < script> 标记调用的,因此浏览器会停止解析页面,直到广告完全加载。我们正在寻找的是一种从客户端加载广告的方法,这样页面可以完整显示,然后广告将开始加载,从而大大改善用户体验。

我已经尝试了很多方法来让它工作,但没有解决方案真正显示广告。您可以在http://magic.tcgplayer.com/上查看该站点。有一个广告作为横幅,位于页面顶部,另一个位于右侧“列”。这两个广告都是使用 < script> 标签加载的。我曾尝试使用延迟加载 javascript 进行加载,但它们不起作用。我曾尝试使用 writeCapture.js(顺便说一句,这是一个出色的脚本),但无法加载广告。我查看了 bezen.org 和 labjs.com 解决方案,但我不确定如何应用这些资源中的想法。另请注意,广告脚本位于远程服务器上,无法复制到我们的服务器。

任何帮助是极大的赞赏。

4

3 回答 3

2

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

于 2010-12-13T22:36:36.290 回答
2

我也尝试找到一些异步加载谷歌广告的方法,我找到了。

一个大网站豆瓣使用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 的代码,来自 google 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>

并且,它加载框架。

于 2011-10-11T12:35:07.947 回答
0

由于事物不断发展,现在可以使用deferorasync属性。

我加载我的脚本,asyncdefer对旧浏览器更安全。

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

于 2013-10-24T15:39:37.400 回答