我有一个漂亮而优雅的网站,可以双倍快速加载,直到横幅广告被启用!等待检索页面加载时间最多需要 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 和拨号连接时代使用的老式图像预加载器脚本。