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')

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

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

此外,更改任何附属代码也不是一种选择,因为它是客户的网站,我想要一个不依赖于黑客广告代码的稳定且可行的解决方案。

- -编辑 - -

我修改了我的广告类以返回由 <noscript> 标签包围的广告代码,同时将广告代码保存在静态成员中。就在我的 </body> 标记之后,我在这里使用此代码:

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

4

1 回答 1

1

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

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

于 2011-10-12T12:23:57.640 回答