2011-10-12 33 views
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') 

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

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

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

---编辑---

我修改了广告类返回由<无脚本>标签,并在同一时间保存广告代码的静态成员包围了广告代码。只是我< /身体>标签后,我在这里使用此代码:

<?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和拨入天使用旧斯库尔图像预装载器脚本的连接。

+0

为了清楚起见,广告是否会导致您网页内容的其余部分延迟加载,或者您只关注整个网页加载时间? – rdjs

+0

@rdjs - 由于广告是内联的,因此在呈现以下html之前,需要先解析所有外部链接。只要主要内容可见,我不介意外部内容是否仍在后台悄悄加载。 –

+0

看起来不错。尽管提及Netscape和拨号连接让我感冒了! ;) – rdjs

回答

1

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

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

+0

不知道谁是你的广告提供商,但这个网站似乎已经记录了我与谷歌广告获得的东西类型http://semplicewebsites.com/google-ads – rdjs

+0

没有具体的广告提供商,该网站是一个使用广告管理器插件的Wordpress构建。客户从选定的投注网站复制和粘贴联盟代码,我写了一个类来提取联盟代码并呈现在正确的位置。这个想法可以稍作修改。我会试试看。 –

+0

查看编辑后 –