У меня красивый и элегантный веб-сайт, который загружается в два раза быстрее, пока, конечно, не будут включены рекламные баннеры! Ожидание получения добавляет до 10 секунд ко времени загрузки страницы, что меня очень расстраивает, поскольку я потратил целую вечность на оптимизацию остальной части сайта.
Я пытался загрузить рекламу через ajax или подобное с переменным успехом. Флэш-баннеры и объявления, которые просто получают фрагмент 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 и коммутируемых соединений.