|
|
|
| Чувствую, что напрасно я валю две темы в одну, но мне кажется что так будет понятнее.
Хочу сделать кэширование страниц на сайте. Еще пока не решил как быдет сбрасываться кэш - по времени или по ключу в БД. Готов выслушать соображения на этот счет.
Сложность вызывает то, что на каждой странице красуются несколько внутрисайтовых баннеров, которые туда вставляются при формировании страницы. Как сделать чтобы эти баннеры менялись в кэшированной странице и чтобы не дублировались в пределах одной страницы? | |
|
|
|
|
|
|
|
для: Loki
(15.01.2006 в 22:52)
| | Хм... не очень понятно, обычно ведь кэш на уровне обратного прокси-сервера организуют... | |
|
|
|
|
|
|
|
для: cheops
(16.01.2006 в 03:03)
| | Не обязательно. Ведь есть разделы типа статей, которые необязательно каждый раз формировать динамически. Предположим, посетитель обращается к такой информации. Мы проверяем был ли страница кэширована, если нет, то формируем ее, одну копию пишем в файл, а другую выдаем пользователю. После чего, ставим в базе флаг что страница кэширована (ну или можно по дате файла ориентироваться). При следующем обращении, мы просто проверяем состояние флага в самом начале скрипта и, если у нас есть кэшированная страница, инклудим ее в скрипт. То есть выполнение скрипта у нас завершается на второй строчке подключением готовой страницы. Мне кажется, что нагрузка на сервер должна снизится многократно.
Понятно что с динамическими страницами такой финт не прокатит.
Более щадащий способ: ставим в настройках время кэширования (например, 1 час). Проверяем дату кэшированного файла и, если она меньше часа, то выводим его. Если же нет - кэшируем по новой. | |
|
|
|
|
|
|
|
для: Loki
(16.01.2006 в 09:48)
| | Так никто вам не мешает в кэшированной странице вставить код из банерообменной (или какой там у вас) системы. Файл то вы создадите с контентом на диске, а банеры всеравно будут из кода системы в нее вставляться. | |
|
|
|
|
|
|
|
для: XPraptor
(16.01.2006 в 11:11)
| | Так в том и вопрос: как сделать баннерообменник, чтобы при одинаковом коде на странице выдавались разные баннеры и ссыка вела в разные места? | |
|
|
|
|
|
|
|
для: Loki
(16.01.2006 в 09:48)
| | А под кэшированием здесь что подразумевается - просто готовый статичный HTML-файл? Помоему вообще разумно генерировать такой файл один раз - при внесении изменений на странице администрирования - правада такой подход более трудоёмкий и требует больше места на жёстком диске, но он действительно позволит снизить нагрузку на сервер. | |
|
|
|
|
|
|
|
для: cheops
(16.01.2006 в 12:36)
| | Это неудобно как раз тем, что требует вмешательства администратора... а ведь можно кэшировать гостевые, различную статискику, которая обнавляется через некоторый период. Генерация статичных страниц неудобна тем, что надо генерировать и ссылки между ними. А так - все ссылки остаются прежними, а кэширование можно отключать на лету. | |
|
|
|
|
|
|
|
для: Loki
(16.01.2006 в 13:38)
| | Так а в чем трудность вставки кода в страницу? Или проблемма в самой банерообменке? Так можно и самому написать, а можо и готовые скачать. В готовых тоже в страницу вставляется лишь функция вызывающая банер определенного типа, а какие банеры и как будут там показаны, указывается в настройках самой системы банерообмена. | |
|
|
|
|
|
|
|
для: XPraptor
(16.01.2006 в 13:46)
| | Проблема в незнании принципов работы внешнего банерообменника и в отслеживании повторяющихся баннеров. | |
|
|
|
|
|
|
|
для: Loki
(16.01.2006 в 14:58)
| | Дык, принцип общий у всех. Добавляешь в базу банеры или их коды с чужих сайтов, а потом по своим ид в базе уже выводить как нужно. При выводе писать последнее время вывода этого банера, и потом при следующем выводе искать самые старые и выводить сначала их.
В принципе в полной банерообменке еще очень много всякого нужно предусмотреть, поэтому проще юзать готовую. | |
|
|
|
|
|
|
|
для: XPraptor
(16.01.2006 в 15:35)
| | Общими словами я могу часами об этом рассказывать. Я спрашивал об алгоритме.
Вот стоит у вас на странице ссылка на баннерообменник:
<a href="http://server.com/link.php?id=111"><img src="http://server.com/banner.php?id=111"></a>
|
где 111 это ваш id.
И выдает вам ротатор некую картинку по запросу (link.php). А если пользователь загрузит 5 страниц, как banner.php определит какую именно из них кликнул пользователь?
А если на одной странице надо вывести несколько баннеров, как link.php определит что такая картинка уже на странице есть? | |
|
|
|
|
|
|
|
для: Loki
(16.01.2006 в 15:45)
| | Дык я про это и толкую. Перед тем как выдать эту картинку, ротатор проверит по времени, когда последний раз грузили какую картинку, и выдаст самую старую. А на счет нескольких банеров, так ставьте себе хоть миллион таких кодов в странице. Первый запрос выдаст одну картинку и запишет время ее выдачи, второй выдаст уже другую и т.д. | |
|
|
|
|
|
|
|
для: XPraptor
(16.01.2006 в 16:13)
| | продолжай: код выдал один баннер - записал время выдачи, затем второй - записал его время. Теперь как определить по какому именно из них щелкнул пользователь? | |
|
|
|
|
|
|
|
для: Loki
(16.01.2006 в 16:18)
| | А для этого ты в выдаче должен вписать все это в тэг <div onclick="save_baner_click(<?php print $idbaners; ?>)">
Тогда при клике исполниться функция явы save_baner_click которая и запишет клик по этому банеру. Наиболее часто эта функция должна просто открыть новое окно с php файлом которому будет передан параметр id_banera а тот запишет в БД и закроется автоматом. | |
|
|
|
|
|
|
|
для: XPraptor
(16.01.2006 в 16:27)
| | Такой вариант будет работать только в случае с iframe, а их я как раз использовать не хотел... | |
|
|
|
|
|
|
|
для: Loki
(16.01.2006 в 16:30)
| | Какие IFRAME? Никаких фрамов, все работает. Зайди на мой портал например сюда http://www.interess.ru/spros1.php?slrbr=116 и кликни на любую кнопку 88х31 в полосе справа, они именно из такого ротатора и выводятся (заметишь слева вверху у тебя новое окошко откроется и закроется). И можешь перегрузить страницу пару раз - увидишь что разные кнопки выводятся. | |
|
|
|
|
|
|
|
для: XPraptor
(16.01.2006 в 16:40)
| | Блин... ды ты прочти начало темы. В динамический код я черта в ступе затолкать могу. Как вот такую шутку
<SPAN id=39 onclick=set_bnr_click(39)><A HREF="http://www.aon.by" target="_blank"><IMG src="http://www.aon.by/images/banr/aon100.gif" width=100 height=100 border=0 ALT="Радио-КГ! Радиотелефоны и телефоны. Бесплатная доставка! "></A></SPAN>
|
ты предлагаешь сформировать в статическом (то есть том, который отдается пользователю в том виде, в каком хранится на диске) html документе? | |
|
|
|
|
|
|
|
для: Loki
(16.01.2006 в 16:49)
| | Млина, Loki, не тормози, какая разница статический файл или динамический. ТЫ видишь в коде
<SPAN id=39 onclick=set_bnr_click(39)><A HREF="http://www.aon.by" target="_blank"><IMG src="http://www.aon.by/images/banr/aon100.gif" width=100 height=100 border=0 ALT="Радио-КГ! Радиотелефоны и телефоны. Бесплатная доставка! "></A></SPAN>
|
уже то, что сформировал тебе php при выводе. Сама строка в этом месте написана как <?php get_baner(8831); ?>
И какая разница где стоит эта строка в статическом или в динамическом файле.
Функция get_baner(8831) формирует код банера в этом месте из БД и именно она определяет какой банер сюда ставить по времени. | |
|
|
|
|
|
|
|
для: XPraptor
(16.01.2006 в 17:11)
| | мы опять говорим о разном:
<html>
<head>
<title>test</title>
<body>
Hello world!
<!--
а тут у нас находится код баннера. Сам скрипт баннера находится, предположим, на softtime.ru, а данный файл лежит на narod.ru, где никого php нет.
-->
</body>
</html>
|
вот я о чем говорю. | |
|
|
|
|
|
|
|
для: Loki
(16.01.2006 в 17:29)
| | Так если ты в html файлы хочешь вставлять банеры, то и код у тебя должен быть на яве. Принцип не меняется, в html файл вставляется ява строка <script language="JavaScript">а тут код вызова либо ява файла, либо php файла, который и вернет полный код банера</script>
А можешь вообще вызывать в коде картинки <img src="http://www.softtime.ru/baner.php"> | |
|
|
|
|
|
|
|
для: XPraptor
(16.01.2006 в 17:37)
| | ну наконец-то:)
вот теперь можно вернуться к моему сообщению от 15:45:) | |
|
|
|
|
|
|
|
для: Loki
(16.01.2006 в 17:40)
| | Все, Loki, нервы кончились! Я после твоего поста 15:45 все остальные что и делал как объяснял тебе алгоритм выведения банеров. Что не понятно там? | |
|
|
|
|
|
|
|
для: XPraptor
(16.01.2006 в 17:42)
| | Есть у нас хтмл, есть ссылка на скрипт формирующий изображение. Ссылка, не меняется (то есть она одинаковая для всех баннеров этого сайта). После того как скрипт выдал несоклько картинок, как определить по которой именно из них кликнул пользователь?
Я понимаю что на JS можно написать самомтоятельный банерообменник. А что получится если JS у клиента отключен? | |
|
|
|
|
|
|
|
для: Loki
(16.01.2006 в 17:57)
| | <script language="JavaScript" type="text/JavaScript" src="http://www.affiliatenetwork.ru/js/rotator.php?ROID=2069"></script>
Вот один из кодов у меня на портале чужого ротатора. Как ты думаешь, что находится в файле rotator.php?
Именно функция get_baner(размер банера); на PHP которая определит какой банер показать и потом напишет в то место где стоит вызов этого файла rotator.php полный код банера с <div onclick="save_baner(id_banera)" | |
|
|
|
|
|
|
|
для: XPraptor
(16.01.2006 в 18:04)
| | О! Спасибо!
Именно подобную конструкцию я и искал:)
Осталось только проконтролировать уникальность баннера в пределах страницы:) | |
|
|
|