Главная
Форум
Контакты
Купить
Поддержи проект
Поиск
Искать:
Расширенный поиск
[Закрыть]
Правила форума
Войти
Регистрация
Russian
English
HandyCache форум
Дела домашние
»
Сайт и форум HandyCache
»
Эффективное кэширование форума: ссылки на посты и на страницы темы
Имя пользователя:
1 час
1 день
1 неделя
1 месяц
Навсегда
Пароль:
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Отправить эту тему
Печать
Автор
Тема: Эффективное кэширование форума: ссылки на посты и на страницы темы (Прочитано 15390 раз)
0 Пользователей и 1 Гость смотрят эту тему.
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Эффективное кэширование форума: ссылки на посты и на страницы темы
«
:
20 марта 2007, 15:00:36 »
Недано решил создать эффективный набор правил HC для этого форума. И натолкнулся на проблему:
ссылки на страницы темы имеют вид:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.100/
А ссылки на конкретный пост имеют вид:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.msg3072/#msg3072
Причём, если ввести
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.100/#msg3072
то страница откроется правильно, и будет прокручена к нужному сообщению!
Не понимаю, почему последний вариант не используется по умолчанию, а вместо него применяется ссылка
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.msg3072/#msg3072
которая заново загружает всю страницу ради просмотра одного поста???
Кроме того, непонятно, как написать правило для HC, исправляющее этот глюк - ведь URL
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.msg3072/#msg3072
не содержит числа 100 - т.е. из него неясно, как можно получить "нормальный" URL, который уже есть в кэше (если тема ранее просматривалась):
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.100/
Это весьма досадный недостаток, учитывая не только зряшний расход траффика, но и то, что страницы форума открываются почему-то заметно медленнее, чем, например, на RU-Board...
Сообщить модератору
Записан
Сергей
Beta tester
Репутация: +9/-2
Offline
Сообщений: 621
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #1 :
20 марта 2007, 16:45:12 »
Почему нам не использовать традиционную ссылку на форум?
http://handycache.ru/forum/index.php
Там таких приколов нет, похоже. Отличие только в отсутствии ссылок на сайт в шапке.
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #2 :
20 марта 2007, 18:08:16 »
Цитата: Сергей от 20 марта 2007, 16:45:12
Почему нам не использовать традиционную ссылку на форум?
http://handycache.ru/forum/index.php
Там таких приколов нет, похоже. Отличие только в отсутствии ссылок на сайт в шапке.
Да все также! Вот ссылка на твой пост выше:
http://handycache.ru/forum/index.php?topic=359.msg3125#msg3125
Номера страницы в ней нет!
Сообщить модератору
Записан
Сергей
Beta tester
Репутация: +9/-2
Offline
Сообщений: 621
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #3 :
20 марта 2007, 19:21:38 »
И что дальше делать будем? Надо бороться с этим безобразием. Кэш ведь замусоривается.
Сообщить модератору
Записан
cepera_ang
Beta tester
Репутация: +9/-4
Offline
Сообщений: 355
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #4 :
20 марта 2007, 20:05:24 »
Забить? Ибо форум - значит регулярно обновляется. А для старых страниц - отрицательный критерий свежести.
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #5 :
20 марта 2007, 21:54:39 »
Цитата: Сергей от 20 марта 2007, 19:21:38
И что дальше делать будем? Надо бороться с этим безобразием. Кэш ведь замусоривается.
Я уже локально борюсь от замусоривания своего кэша правилом в "Преобразовании URL":
#5#~#True#~#(handycache\.ru/component/option,com_smf/Itemid,\d+/topic,\d+)(\.\d+)?(;all)?[./].*#~#\1\2\3#~#False#~#True
Оно:
1. Сохраняет страницы топика не как отдельные каталоги с вложенным файлом #_ , а просто как файлы topic,102.0 и т.д.
2. Отбрасывает многочисленные вариации типа: .msg* , .new/ , /topicseen,1/ чтобы не плодить кучу бесполезных файлов, придти на которые в автономке второй раз практически нереально!
От замусоривания кэша спасает, а вот от повторной загрузки одинаковых страниц не очень...
Цитата: cepera_ang от 20 марта 2007, 20:05:24
Забить? Ибо форум - значит регулярно обновляется. А для старых страниц - отрицательный критерий свежести.
Не всегда это возможно! Вот, к примеру, старый пост:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.msg534/#msg534
Такого файла может и не быть у тебя в кэше, зато наверняка есть старая страница:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.0/
на который тот пост находится, но сопоставить их правилом ты не можешь!
«
Последнее редактирование: 20 марта 2007, 22:06:47 от DenZzz
»
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #6 :
21 марта 2007, 14:26:23 »
DenZzz
Может, попросить администратора исправить этот глюк?
Сообщить модератору
Записан
Rick
Администратор
Репутация: +15/-1
Offline
Сообщений: 868
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #7 :
21 марта 2007, 16:04:14 »
Цитата: popkov от 20 марта 2007, 15:00:36
ссылки на страницы темы имеют вид:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.100/
А ссылки на конкретный пост имеют вид:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.msg3072/#msg3072
Правильно. Здесь "topic,78" - указывает на топик.
"100" или "msg3072" - определяет страницу с которой показывать топик. Зависит от значения установки сколько сообщений на одной странице. Сейчас это значение 20. Т.е. 0, 1, ... 19 - приведут на первую страницу. 20-39 - на вторую и т.д.
"msg3072" явно не указывает с какой страницы показывать топик, форум находит это сообщение и сам определяет на какой странице это сообщение должно показываться исходя из текущего значения количества сообщений на одной странице.
Т.е. это два разных подхода: первый пляшет от порядкого номера сообщения в топике, а второй от уникального номера сообщения.
Цитировать
Причём, если ввести
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.100/#msg3072
то страница откроется правильно, и будет прокручена к нужному сообщению!
А если ввести любое значение <100 или >119 якоря #msg3072 на открывшейся странице не будет как и самого сообщения msg3072.
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #8 :
21 марта 2007, 17:57:09 »
Цитата: Rick от 21 марта 2007, 16:04:14
"msg3072" явно не указывает с какой страницы показывать топик, форум находит это сообщение и сам определяет на какой странице это сообщение должно показываться исходя из текущего значения количества сообщений на одной странице.
Т.е. это два разных подхода: первый пляшет от порядкого номера сообщения в топике, а второй от уникального номера сообщения.
А если ввести любое значение <100 или >119 якоря #msg3072 на открывшейся странице не будет как и самого сообщения msg3072.
Но ведь ссылки вида
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.msg3072/#msg3072
генерируются автоматически, когда мы цитируем, например! Почему бы не делать их такими, чтобы при клике по заголовку цитаты страница бралась из кэша, а не загружалась заново из Интернета? На этом форуме введено ограничение, что редактировать свой пост можно только в течение часа - так зачем
принуждать
пользователей форума загружать всегда заново всю страницу с этим сообщением, если отрицательный критерий свежести в один час и так гарантирует, что интересующее меня сообщение не изменилось???
Я даже на RU-Board не обновляю старые страницы, хотя там нет ограничения в один час на редактирование сообщения! И оно может измениться в любой момент! Здесь же сообщения нельзя менять, но именно на этом форуме пользователи вынуждены грузить всё по новой, тратя время и деньги впустую!
Цитата: Rick от 21 марта 2007, 16:04:14
"msg3072" явно не указывает с какой страницы показывать топик, форум находит это сообщение и сам определяет на какой странице это сообщение должно показываться исходя из текущего значения количества сообщений на одной странице.
Может быть, сделать какой-то простой алгоритм пересчёта (в скрипте самой страницы) или хотя бы
перенаправлять
на "нормальную" ссылку, а не выдавать в ответ на запрос
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.msg3072/#msg3072
всю страницу заново?
Почему бы тогда просто не перенаправлять? И загружалось бы всё быстрее, и нагрузка на сервер снизилась бы... А то всё тормозит... Да ещё иногда вообще сообщения о перегрузке сервера возникают...
«
Последнее редактирование: 21 марта 2007, 18:08:33 от popkov
»
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #9 :
21 марта 2007, 18:15:57 »
Rick
Так все-таки, технически возможно сделать, чтобы ссылки на конкретные посты в "Последних сообщениях", "Непрочитанных сообщениях" и самих темах выглядели как номер конкретной страницы топика с якорем поста?
Это бы существенно увеличило экономию трафика/времени за счет загрузки старых страниц форума из кэша!
Сообщить модератору
Записан
Rick
Администратор
Репутация: +15/-1
Offline
Сообщений: 868
Re: Эффективное кэширование форума: ссылки н&
«
Ответ #10 :
21 марта 2007, 22:24:07 »
технически все можно - можно и форум с нуля переписать.
Цитата: popkov от 21 марта 2007, 17:57:09
так зачем
принуждать
пользователей форума загружать всегда заново всю страницу с этим сообщением, если отрицательный критерий свежести в один час и так гарантирует, что интересующее меня сообщение не изменилось
Зависит от ссылки по которой пользователь зашел на страницу. В большинстве случаев никакой повторной загрузки той же страницы нет.
«
Последнее редактирование: 21 марта 2007, 22:30:45 от Rick
»
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #11 :
23 марта 2007, 17:14:01 »
Цитата: Rick от 21 марта 2007, 22:24:07
технически все можно - можно и форум с нуля переписать.
Мне кажется, сделать переадресацию вместо того, чтобы выдавать заново всю страницу - это реальная задача.
Цитата: Rick от 21 марта 2007, 22:24:07
Зависит от ссылки по которой пользователь зашел на страницу. В большинстве случаев никакой повторной загрузки той же страницы нет.
Я говорил конкретно о ссылках на посты темы типа:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,359.msg3208/#msg3208
Такие ссылки всегда приводят к повторной загрузке всей страницы темы и заодно замусоривают кэш файлами одноразового использования (и заметного размера, кстати!)
Я уж не говорю о тормозах и расходе траффика впустую!
«
Последнее редактирование: 23 марта 2007, 17:57:56 от popkov
»
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #12 :
27 марта 2007, 23:55:06 »
Размышления над тем, как эффективнее кэшировать форумы с таким неудачным для нас устройством, как у этого, натолкнули меня на интересную мысль.
Одним из недостатков этого форума для нас является отсутствие того самого знака вопроса "?", от которого пляшет "Алгоритм преобразования URL в имя файла в кэше". Форум (да и весь сайт handycache.ru) устроен так, что параметры для скрипта форума записываются через слэш "/", а не через "&" или ";", как уже давно стало стандартом для многих других серверов. И никакого знака вопроса "?", который бы указывал на то, что начинаются параметры скрипта, здесь не наблюдается. Вот типичные URL:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78/
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.0/
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.0/prev_next,next/
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.40/
http://handycache.ru/component/option,com_smf/Itemid,10/action,post2/
http://handycache.ru/component/option,com_smf/Itemid,10/action,post2/start,0/board,1/
http://handycache.ru/component/option,com_smf/Itemid,10/action,post/msg,3236/topic,367.0/sesc,dc240277a57de189bd192db6214877ff/
http://handycache.ru/component/option,com_smf/Itemid,10/action,post2/start,0/msg,3236/sesc,dc240277a57de189bd192db6214877ff/board,5/
http://handycache.ru/component/option,com_simplefaq/task,display/Itemid,3/catid,7/
Ну и "больное место" этого форума (по таким запросам сервер сам ищет, на какой странице находится требуемый контент, и отдаёт эту страницу целиком, вместо того, чтобы перенаправить на идентичную страницу, которая уже есть в кэше):
http://handycache.ru/component/option,com_smf/Itemid,10/topic,367.msg3236/
http://handycache.ru/component/option,com_smf/Itemid,10/topic,78.new/
Скрипт этого сайта, по сути, весь запрос, отправляемый на сервер handycache.ru (естесственно, не содержащий имени серевера) - как раз и воспринимает как параметры скрипта. Причём разбор параметров производится именно по символам "/" (слэш), каждый из которых создаёт в нашем кэше отдельный каталог, что сильно увеличивает время, которое тратится на поиск файла в кэше, а также увеличивает фрагментацию и вообще нагрузку на винчестер, приводя к его ускоренному износу! Причём создание такого количества вложенных каталогов, по сути, совершенно неоправдано - ни с точки зренияя эффективности работы кэша, ни с точки зрения удобства анализа его содержимого!
Вообще, для чего, собственно, решено было воспроизводить в кэше структуру каталогов сервера? Для удобства анализа и исследования содержимого кэша, чтобы можно было сделать выводы о внутреннем устройстве сайта, чтобы файлы, лежащие на сервере в одной папке, на диске располагались так же, а не как в кэше IE - все файлы с разных сайтов в перемешку!
Но какой смысл воспроизводить на диске в виде структуры каталогов последовательности параметров сайтового скрипта??? Не лучше ли все их объединить и вместо последовательности вложенных каталогов создавать только один каталог с кучей файлов в нём или даже проще - множество файлов в корневом каталоге?
Куда меньше была бы нагрузка на винчестер и куда быстрее производился бы поиск и чтение файла с диска при запросе браузера!
Откровенно говоря, даже не знаю, какое универсальное решение данного вопроса предложить: ведь всё же есть на данном сайте и "нормальные" ссылки, для которых стоило бы (хоть и не обязательно создавая такое количество вложенных каталогов) сохранять структуру запроса в виде директорий:
http://handycache.ru/forum/avatars/Actors/Brad_Pitt.jpg
http://handycache.ru/forum/avatars/Musicians/Jewel.jpg
http://handycache.ru/images/stories/mailporter.png
Этот сайт, как я понимаю, не единственный, устроенный таким образом.
Одно из возможных решений - для всех ссылок на данном сайте, которые не оканчиваются на "известное" расширение - заменять все слэши "/" на "#!".
Кто что думает по этому поводу?
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Re: Эффективное кэширование форума: ссылки на посты и на страницы темы
«
Ответ #13 :
28 марта 2007, 00:30:27 »
Цитата: popkov от 27 марта 2007, 23:55:06
Одно из возможных решений - для всех ссылок на данном сайте, которые не оканчиваются на "известное" расширение - заменять все слэши "/" на "#!".
Это не спасет от замусоривания кэша одинаковыми файлами, которые вряд ли когда пригодятся даже в автономном режиме!
Например ссылки:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,359.msg3350/#new
http://handycache.ru/component/option,com_smf/Itemid,10/topic,359.msg3235/#msg3235
http://handycache.ru/component/option,com_smf/Itemid,10/topic,359.msg3208/#msg3208
http://handycache.ru/component/option,com_smf/Itemid,10/topic,359.msg3199/#msg3199
http://handycache.ru/component/option,com_smf/Itemid,10/topic,359.msg3349/topicseen,1/#msg3349
все ведут на одну страницу:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,359.0/
Ну и зачем в кэше хранить столько файлов? Как я борюсь с этой проблемой локально, написал
выше...
Еще у меня в "Белом списке" есть пара правил, запрещающих кэширование служебных страниц:
#10#~#True#~#^handycache\.ru/forum/index\.php\?action=(keepalive|post|quotefast)#~##~##~#False#~#True#~#False#~#False#~#False#~#False
#10#~#True#~#^handycache\.ru/component/option,com_smf/Itemid,\d+/action,#~##~##~#True#~#True#~#False#~#False#~#False#~#False
Сообщить модератору
Записан
Страниц: [
1
]
Вверх
Отправить эту тему
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Главная категория
-----------------------------
=> Общие вопросы
=> Новые предложения
=> Дополнения, плагины
=> Сжатие трафика
=> English forum
=> Indonesian forum
-----------------------------
Гостевая
-----------------------------
=> Гостевая
-----------------------------
Дела домашние
-----------------------------
=> Сайт и форум HandyCache
=> Курилка
© 2006-2014 HandyCache Team. Все права защищены.
Загружается...