Форум "Web-мастер" (архив)
Технологии web-програмирования
Отлов падения банерообменной сети и подмена их баннера своим. Какие мысли, как лучше реализовать?В смысле, имеется в виду, сайт участвует в баннерной сети, и в случае, если вдруг банерообменная сеть в дауне, и её баннер соответственно показываться не может, то нужно подставить другой баннер (свой, либо другой баннерной сети). З.Ы. Желательно не тормозное решение, чтоб не сказывалось на времени загрузки страницы. З.З.Ы. В некоторых сетях это предусмотренно ими самими, например в БаннерБанк.
|
|
#1 McSimm © 07.05.04 11:48:26
Запрос в сеть идет от клиента. Результат запроса - положительный или отрицательный, будет известен броузеру. В принципе задачу можно попытаться решить несколькими способами. 1. С помощью JS на клиенте. Сложно. Поймать момент когда броузер прекратил попытки получить баннер, потом проверить наличие изображения. Все это практически очень сложно сделать корректно и нормально работающим. 2. С помощью предпроверки на сервере при генерации страницы. Но это однозначно существенно затормозит генерацию страницы. При некоторых вариантах дизайна можно сделать, чтобы тормаоза были только при выводе баннера, тогда как вся страница уже на эеране. Можно также не проверять постоянно, а делать это с некоторой периодичностью исходя из соображения, что сеть если упала, то поднимется не через пару секунд. 3. Вариант делать запрос на баннер своему скрипту, в котором проверять ответ сети. Тут свои тонкости работы с сетями - такой механизм может быть невоспринят сетью или воспринят как попытка накрутки. |
|
> С помощью предпроверки на сервере при генерации страницы. Можно чуть поподробнее? > Но это однозначно существенно затормозит генерацию страницы. > При некоторых вариантах дизайна можно сделать, чтобы тормаоза > были только при выводе баннера, тогда как вся страница уже > на эеране. У меня баннер показывается в <iframe>. Как раз тот вариант дизайна? З.Ы. Может, можно сделать что-то типа пинга хоста, и если пинг не проходит, значит сеть лежит? Если можно, то как? Или такой способ будет тоже не эффективным? |
|
#3 McSimm © 07.05.04 13:16:41
> Если можно, то как? просто сделать GET запрос. Немножко сложнее, но правильнее - через сокеты - сделать запрос HEAD. полученный результат проанализировать. Но это надо делать с осторожностью, чтобы не нарваться на нарушение правил сети. Лучше, конечно, оговорить с администрацией техническую сторону. Например, запрос, который не приводит к увеличению счетчика показа, но дает информацию о состоянии сервера |
|
Я себе представляю что-то вроде такого... <?php $fp = (собачка)fsockopen('хост моей банерообменной сети', 80, &$errno, &$errstr, 2.5); if($fp){ // показываем баннер банерообменной сети . . . . . . . . . . . . . . . . . . . fclose($fp); } else { // показываем свой баннер . . . . . . . . . . . . . . . . . . . } ?> |
Тема находится в архиве
Написать ответ |
|
