Svarga
Moderator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору superkatya Цитата: я фигею дорогая редакция товарисч не шутит? | мало ли... какая разница? главное сам процесс ironwit В принципе, если подразумевается полная локальная копия руборда-- мой подход не самый лучший, но мне, к примеру, очень многие темы (да и разделы) попросту ненужны и полезнее было бы только получать обновления нескольких разделов и отдельных тем из остальных разделов (что есть удобнее, чем открывать страницу килобайт на 80 ради одного поста на этой странице-- т.е. и мне и серверу жилось бы при этом лучше ), т.е. настроил клиент на определённые темы и несколько разделов, кнопочку нажал-- он скачал микробные обновления (при наличии таковых) нескольких разделов, тем в них и отдельных тем других разделов, что-то ещё заинтересовало-- скачал индекс другого раздела, пробежался по темам... Короче, хорошо бы с общими целями сначала, всё-таки, чётко определиться, а уже дальше-- структуру обсуждать... Цитата: Докачка-- не выход: файл будет обновляться не только при создании новой темы, но и при обновлении уже имеющейся значит index для тем нужно качать полностью(можно и в архиве) а index для содержания каждой ветки хранить в txt и докачивать по мере появления постов. | при редактировании постов темы что-то неладное будет твориться с индексом темы: если мы будем вносить данные об отредатированном посте как о новом в индекс темы (чтоб можно было докачать-- и было счастье ), то получится что мы лишний раз дублируем данные о посте-- если какой-то пост часто обновляется (к примеру, прибитые посты в популярных темах), то индекс неоправданно разрастётся в размере. Вообщем, я против докачек Если индекс темы организовать так же, как индекс раздела (то о чём я выше писал-- index.txt, index1.txt... indexN.txt), то, по-моему, будет несколько проще: при добавлении поста заносим данные о нём в главный индекс, если количество упомянутых в главном индексе постов = 20 (30 или сколько-то ещё-- потом можно определиться)-- переименовуем индекс.тхт в индекс(N+1).тхт, создаём новый индекс. При этом, правда, придётся при первом редактировании какого-то любого поста темы создать дополнительный индекс (скажем, edit.txt), занести в edit.txt ссылку на пост (номер или что угодно ещё), ник того, кто редактировал (если он отличается от автора поста) и время редактирования и добавить дату/время обновления последнего из обновлённых постов темы в индекс.тхт темы (по по этой дате будем смотреть, нужно ли скачивать edit.txt). При последующих обновлениях постов темы-- изменяем/добавляем данные в edit.txt + в индексе изменяем дату редактирования поста. На вид, вроде, и сложнее всё, но эти страшные операции с файлами будут производиться только при создании нового поста и обновлении старого-- т.е. сравнительно не очень часто, а отдельные индексы останутся небольшими: т.о., при первом обращении клиента ему не придётся качать весь боЛшой индекс (если тема большая), а только индексы с данными о последних или первых постах темы (мне, к примеру, обычно неинтересно читать первые страницы длинных тем-- обычно я открываю и читаю последние две-три страницы, и потом, если интересно, открываю всё остальное), т.е. скачал кто-то клиентом пару индексов темы (и паравозом сами посты, упомянутые в индексах)-- почитал, понравилось-- скачал всё остальное, не понравилось-- пошёл другие темы разгребать... А если вариант с докачкой-- то придётся при первом посещении темы качать один большой индекс темы и попутно все посты, на которые этот файл ссылается... Или я ошибаюсь? И по клиенту-- устроить в нём нормальный внешний вид форума (скачали основной индекс, проанализировали данные, повесили на шаблон), при заходе в раздел скачиваем индекс.тхт раздела, анализируем, вешаем данные на шаблон, показываем... если это первый заход в раздел-- можно, конечно устроить и загрузку всех индексов раздела-- но это будет тяжкое занятие, посему для начала загружаем только индексы с данными об определённом количестве новых постов-- чтоб отобразить нужное количество заголовков с датами, ссылками и т.п., и при последующих заходах скачиваем только последние обновлённые индексы. На основе данных об общем количестве постов выводим ссылки на остальные страницы раздела (1 2 3 4 ...), т.е. клиент внешне ведёт себя как браузер (а на самом деле является хитрым локальным сервером ) и собирает локальную базу по мере посещения отдельных тем/разделов. Не знаю, правда, по-русски ли выражаюсь Короче, мой вариант структуры такой: Цитата: [font=Courier,mono,Courier New]/index.txt # главный индекс форума, в нём # живут названия разделов, ссылки на индексы разделов # и дата обновления шаблона # (а также, возможно, данные о последнем посте в каждом разделе) /layout.txt # файл с данными по внешнему виду всех страниц-- скрипты, CSS, HTML, # возможно, ссылки на картинки, которые отсутствуют в дистрибутиве клиента # т.е. с самим клиентом также идут основные картинки (смайлики, аватары), # а сюда забрасываем ссылки на новые смайлики и аватары, чтоб они # заранее скачивались. /1/index.txt (/1/index1.txt и т.д.) # индекс раздела №1: здесь данные о последних # обновлённых и новых темах-- даты, названия, ссылки на индексы /1/1/index.txt (/1/1/index1.txt и т.д.) # индекс первой (самой древней) темы раздела №1: # здесь данные об определённом количестве последних # постов темы (даты, авторы, ссылки), а также, # возможно, ссылка на edit.txt, если хотя бы один из # постов в теме редактировался. /1/1/edit.txt # файл с данными об отредактированных постах (ссылка на пост, # кто редактировал, дата) /1/1/1.txt # первый пост темы №1 раздела №1... можно просто текст [/font] | Соответственно, если всё архивами-- то тхт каждый в своём архиве. Да, а как со счётчиками и баннерами поступать? выкачивать каждый раз при скачивании любого индекса.тхт (просмотр, всё-таки, офлайновый подразумевается, так что просто вставлять коды на страницу бесполезно )?
|