使用异步加载或缓存加速外部横幅广告

时间:2011-10-12 11:46:29

标签: php jquery html affiliate

我有一个漂亮而优雅的网站,可以快速加载,直到当然横幅广告已启用!等待检索最多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')

它必须与跨站点脚本和安全性有关,但我不是这方面的专家。有没有办法达到我想要的目的?

我不认为缓存是一种选择,因为它会扭曲展示次数/点击率统计信息。

同时更改任何会员代码也不是一个选项,因为它是客户的网站,我想要一个稳定且可行的解决方案,不依赖于黑客广告代码。

--- --- EDIT

我修改了我的广告类,以返回&lt; noscript&gt;所包围的广告代码标签,同时将广告代码保存在静态成员中。就在我的&lt; / body&gt;之后我在这里使用这段代码:

    <?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和拨号连接时使用的旧的skool图像预加载器脚本。

1 个答案:

答案 0 :(得分:1)

您可以将占位符div放在您想要广告的位置,在加载所有实际内容后加载广告,然后将加载的广告移动到位。

这对页面的整体速度没有帮助,但可以让您看到实际内容,而无需等待广告加载。