Как и многие вебмастера, я сталкиваюсь с тем, что Яндекс-Директ, бывает, подтормаживает при загрузке. Причина — использование
а в самом конце темы, прямо перед body — выводится то, что накопилось
Вызов кода Яндекс-Директа в любом месте сайта теперь выглядит так
Теперь задержки нет и думать о связке DIV <-> SCRIPT не приходится.
document.write("
в любом месте страницы, что при отсутствии ответа от сервера - приводит к блокировке HTML-парсера и “зависанию” страницы.
Сам Яндекс предлагает бороться с этой проблемой следующим образом, однако, как-то не уверенно ;-) - о возможности создания такого подключения можно узнать только из FAQ, а не из самого интерфейса системы при создании и подключении блоков.
Все здорово, правда в случае, если на сайте несколько блоков Директа - становится немного неудобно.
Сегодня я написал небольшую “оберточку”, которая может кому-нибудь пригодится
В теме сайта (/themes/ВАША_ТЕМА/theme.php для XOOPS/RunCMS, например)
function theme_show_context($data) {
if (!isset($data['type'])) {
$data['type'] = 'horizontal';
}
if (!isset($data['limit'])) {
$data['limit'] = 3;
}
if (!isset($data['stat_id'])) {
$data['stat_id'] = 100;
}
$id = md5(serialize($data));
$html = "";
$GLOBALS['yandex_direct'][$id] = $html;
return '<'.'div class="yandex_direct_place" id="'.$id.'">
';
}
а в самом конце темы, прямо перед body — выводится то, что накопилось
// calling yandex-direct
foreach ($GLOBALS['yandex_direct'] as $id => $html) {
echo $html;
}
Вызов кода Яндекс-Директа в любом месте сайта теперь выглядит так
theme_show_context(array('stat_id' => 10, 'limit' => 2));
Теперь задержки нет и думать о связке DIV <-> SCRIPT не приходится.