+  HandyCache форум
|-+  Главная категория» Новые предложения» Структура кэша. Можно ли усовершенствовать?
Имя пользователя:
Пароль:
Страниц: 1 [2] 3  Все   Вниз
  Отправить эту тему    Печать  
Автор Тема: Структура кэша. Можно ли усовершенствовать?  (Прочитано 33089 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #20 : 25 октября 2009, 02:35:22 »

Вопрос: возможно ли этого добиться штатными средствами HC?

Да. Хоть правилами списка "Преобразование URL", хоть расширением.

Похожие темы:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,980.0/
http://handycache.ru/component/option,com_smf/Itemid,10/topic,31.msg13549/#msg13549
Сообщить модератору   Записан
mirny
Пользователь
**

Репутация: +11/-1
Offline Offline

Сообщений: 84


« Ответ #21 : 25 октября 2009, 16:51:01 »

DenZzz, благодарствую.

Темы вкурил.

Отображение URL -> cache буду делать таким:
Код:
http://example.com/            -> d:\cache\com\e\example\www\
http://www.example.com/        -> d:\cache\com\e\example\www\
http://sub.example.com/        -> d:\cache\com\e\example\sub\
http://subsub.sub.example.com/ -> d:\cache\com\e\example\sub.subsub\
Сообщить модератору   Записан
mirny
Пользователь
**

Репутация: +11/-1
Offline Offline

Сообщений: 84


« Ответ #22 : 25 октября 2009, 20:01:08 »

Сделал такие два правила для списка "Преобразование URL":

#5#~#True#~#^((\w)[^./]*)\.([a-z]{2,4})/#~#\3/\2/\1/www/#~#False#~#True

#5#~#True#~#^(?>(?>www)\.)?((?>[^./]+))?\.((?>[^./]+)\.)?((?>[^./]+)\.)?((?>[^./]+)\.)?((?>[^./]+)\.)?((?>[^./]+)\.)?((\w)[^./]*)\.([a-z]{2,4})/#~#\9/\8/\7/\6\5\4\3\2\1/#~#False#~#True


Вроде бы все работает как задумано.

Осталось как-то сконвертировать существующий кэш.
« Последнее редактирование: 25 октября 2009, 20:25:03 от mirny » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #23 : 25 октября 2009, 20:11:59 »

Осталось как-то сконвертировать существующий кэш.

http://handycache.ru/component/option,com_smf/Itemid,10/topic,2608.0/

Только предварительно убедись в корректности предлагаемых преобразований.
Сообщить модератору   Записан
mirny
Пользователь
**

Репутация: +11/-1
Offline Offline

Сообщений: 84


« Ответ #24 : 26 октября 2009, 20:59:06 »

Почистил правила

#5#~#False#~#^(?>www\.)?((\w)[^./]*)\.([a-z]{2,4})/#~#\3/\2/\1/www/#~#False#~#True

#5#~#False#~#^(?>www\.)?([^./]+)?\.([^./]+\.)?([^./]+\.)?([^./]+\.)?([^./]+\.)?([^./]+\.)?((\w)[^./]*)\.([a-z]{2,4})/#~#\9/\8/\7/\6\5\4\3\2\1/#~#False#~#True

группу "(?>www\.)?" в начале оставил на всякий случай.
Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #25 : 02 ноября 2009, 15:54:13 »

Цитировать
http://ru-board.com/       -> d:\cache\com\ru-board\www\
http://forum.ru-board.com/ -> d:\cache\com\ru-board\forum\

www вообще-то отбрасывается по умолчанию.

В какие папки сохранятся ссылки вида:
http://forum.ru-board.com/
http://ru-board.com/forum/

Обе в папку \cache\com\ru-board\forum ?


Добавлено: 02 Ноября 2009, 16:19:33

Спасибо огромное автору расширения MoveRename Files.
Правда после него остается мусор в виде лишних пустых папок, но их легко удалить.
Главное - теперь можно реализовать компактный режим кэша, о чем давно мечтал уже.

#5#~#True#~#^([^/]+\.)?((\w)[^./]*\.[^./\d]+(:\d+)?/)#~#\3/\2\0#~#False#~#True
#5#~#True#~#^\d+(\.\d+){3}(:\d+)?/#~#_IP/\0#~#False#~#True

http://forum.ru-board.com/ -> cache\r\ru-board.com\forum.ru-board.com\

на первом уровне каталогов - начальные буквы доменов второго уровня
на втором - сами эти домены
глубже - полные имена сайтов.

Теперь все разложено по полочкам и легко вычищать мусор из кэша Улыбка
Сообщить модератору   Записан
mirny
Пользователь
**

Репутация: +11/-1
Offline Offline

Сообщений: 84


« Ответ #26 : 03 ноября 2009, 03:21:01 »

www вообще-то отбрасывается по умолчанию.
Здесь www добавлено чтобы уровень вложенности везде был одинаковым. Мне это нужно чтобы в любом случае можно было однозначно преобразовать путь обратно в урл.

В какие папки сохранятся ссылки вида:
http://forum.ru-board.com/
http://ru-board.com/forum/

Обе в папку \cache\com\ru-board\forum ?
нет, в моей схеме будет так:
Код:
http://forum.ru-board.com/  -> d:\cache\com\r\ru-board\forum\
http://ru-board.com/forum/  -> d:\cache\com\r\ru-board\www\forum\

http://forum.ru-board.com/ -> cache\r\ru-board.com\forum.ru-board.com\
наверно это хорошо визуально когда вы смотрите кэш в файловом менеджере, но избыточно и сильно удлиняет пути, которые у нас ограничены 200 знаками, насколько я понял. Все что превышает 200 знаков будет отрезано и заменено хэшем. Не означает ли это что в вашей структуре кэша таких обрезанных путей окажется больше?
Сообщить модератору   Записан
Ice
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #27 : 04 февраля 2010, 20:03:39 »

Есть просто мысль о небольшом улучшении удобства пользования Улыбка
В папке Cache хранить каталоги с именами доменов только задом наперёд Улыбка
Сейчас файл хранится по такому пути:
Код:
...HandyCache/Cache/releases.ubuntu.com/include/ubuntu.css
А сделать чтобы хранился по такому пути:
Код:
...HandyCache/Cache/com.ubuntu.releases/include/ubuntu.css
Т.е. просто сначала домен первого уровня, точка, домен второго уровня, точка, ... и т.д. все поддомены через точку Улыбка
Тогда все каталоги упорядочаться в папке Cache по имени и будет удобно что-то искать... Улыбка
Интересно, кто-нить ещё задумывался про такое? Улыбка
Скажем, чтобы не портить пользователям уже существующие кэши, то можно такое нововведение сделать через галочку. Кто поставил её, тому нате доменные имена наоборот Улыбка
Спасибо
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #28 : 05 февраля 2010, 11:34:21 »

Интересно, кто-нить ещё задумывался про такое?

И не просто задумывались, а уже есть несколько вариантов практического использования разных структур кэша! И ты вполне можешь сам реализовать свой! Никакой новой "галочки" в HC не понадобится. Надо всего лишь добавить твое правило в список "Преобразование URL".

Варианты таких правил описаны здесь:
http://handycache.ru/component/option,com_smf/Itemid,10/topic,980.0/
http://handycache.ru/component/option,com_smf/Itemid,10/topic,31.msg13549/#msg13549
« Последнее редактирование: 05 февраля 2010, 11:46:13 от DenZzz » Сообщить модератору   Записан
a.zhdanov
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #29 : 19 октября 2010, 00:04:43 »

А нельзя сделать, чтоб допустим весь яндекс находился в одной папке, допустим гугл тоже в своей папке, я просто пытался своими кривыми руками одноклассников запихать в одно место, но не выходит ни чего, правила которые здесь нашёл - поставил, но что-то видать не так
Сообщить модератору   Записан
popkov
Beta tester
*****

Репутация: +3/-0
Offline Offline

Сообщений: 349


« Ответ #30 : 02 марта 2011, 00:55:09 »

А нельзя сделать, чтоб допустим весь яндекс находился в одной папке, допустим гугл тоже в своей папке
Можно, конечно! У меня структура кэша определяется следующими тремя правилами списка "Преобразование URL":

#5#~#True#~#^((\d+\.){3}\d+)(/|$)#~#_IP-адреса_/\1/#~#False#~#True
#5#~#True#~#^([\w\d\-]+)\.([\w]+)(:\d+)?(/|$)#~#\1..\2/_NULL_/#~#False#~#True
#5#~#True#~#^([\w\d\-\.]+)\.([\w\d\-]+)\.([\w]+)(:\d+)?(/|$)#~#\2..\3/\1/#~#False#~#True


Весьма удобно: в папке ru-board..com, к примеру, будут подпапки forum и _NULL_. В папку _NULL_, которая в списке папок будет всегда на самом верху, кладется содержимое собственно сайта http://ru-board.com, а в папку forum - сайта http://forum.ru-board.com. IP-адреса сохраняются в отдельную папку специально для них, которую легко просматривать и чистить. Две точки вместо одной изначально были введены для программы HC Historian, чтобы избежать двусмысленности при восстановлении URL из пути к файлу в кэше. Если не пользуешься Историком - можно оставить только одну точку.
Сообщить модератору   Записан
mirny
Пользователь
**

Репутация: +11/-1
Offline Offline

Сообщений: 84


« Ответ #31 : 03 марта 2011, 03:23:57 »

помнится я вдохновлялся вашими идеями придумывая себе устройство кэша )
вместо двух точек взял обратный порядок т.е. somesite.com -> com.somesite , а вместо _NULL_ — www
Сообщить модератору   Записан
a.zhdanov
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #32 : 04 марта 2011, 20:56:48 »

Можно, конечно! У меня структура кэша определяется следующими тремя правилами списка "Преобразование URL":

#5#~#True#~#^((\d+\.){3}\d+)(/|$)#~#_IP-адреса_/\1/#~#False#~#True
#5#~#True#~#^([\w\d\-]+)\.([\w]+)(:\d+)?(/|$)#~#\1..\2/_NULL_/#~#False#~#True
#5#~#True#~#^([\w\d\-\.]+)\.([\w\d\-]+)\.([\w]+)(:\d+)?(/|$)#~#\2..\3/\1/#~#False#~#True


Весьма удобно: в папке ru-board..com, к примеру, будут подпапки forum и _NULL_. В папку _NULL_, которая в списке папок будет всегда на самом верху, кладется содержимое собственно сайта http://ru-board.com, а в папку forum - сайта http://forum.ru-board.com. IP-адреса сохраняются в отдельную папку специально для них, которую легко просматривать и чистить. Две точки вместо одной изначально были введены для программы HC Historian, чтобы избежать двусмысленности при восстановлении URL из пути к файлу в кэше. Если не пользуешься Историком - можно оставить только одну точку.
Отлично! Спасибо! Теперь всё как я хотел Веселый
Сообщить модератору   Записан
Ontario
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #33 : 06 мая 2011, 07:03:47 »

Почистил правила

#5#~#False#~#^(?>www\.)?((\w)[^./]*)\.([a-z]{2,4})/#~#\3/\2/\1/www/#~#False#~#True

#5#~#False#~#^(?>www\.)?([^./]+)?\.([^./]+\.)?([^./]+\.)?([^./]+\.)?([^./]+\.)?([^./]+\.)?((\w)[^./]*)\.([a-z]{2,4})/#~#\9/\8/\7/\6\5\4\3\2\1/#~#False#~#True

группу "(?>www\.)?" в начале оставил на всякий случай.


попробывал структуру кэша от mirny, вроде нормально
можно эти правила оптимизировать или оставить так?
Сообщить модератору   Записан
mirny
Пользователь
**

Репутация: +11/-1
Offline Offline

Сообщений: 84


« Ответ #34 : 06 мая 2011, 17:39:34 »

Вот что у меня сейчас стоит:

Код:
#5#~#True#~#^(([0-9a-z])[^./]*)\.([a-z]{2,4})/(?!\#-[0-9a-z]/)#~#\3/#-\2/\1/www/#~#False#~#True
#5#~#True#~#^([^./]+)\.([^./]+\.)?([^./]+\.)?([^./]+\.)?([^./]+\.)?([^./]+\.)?(([0-9a-z])[^./]*)\.([a-z]{2,4})/#~#\9/#-\8/\7/\6\5\4\3\2\1/#~#False#~#True
#5#~#True#~#^([a-z]{2})/\#-[0-9a-z]/(com?|net|org|biz|edu|gov|me|ac|pp|int?|ltd|plc)/(?!www/)(([0-9a-z])[^/.]*)/#~#\1.\2/#-\4/\3/www/#~#False#~#True
#5#~#True#~#^([a-z]{2})/\#-[0-9a-z]/(com?|net|org|biz|edu|gov|me|ac|pp|int?|ltd|plc)/(([0-9a-z])[^/.]*)\.([^/]+)/#~#\1.\2/#-\4/\3/\5/#~#False#~#True
Два последних правила необязательны, они мне нужны для того чтобы обрабатывать домены типа somesite.org.ru Вся эта группа правил должна стоять в конце списка.


Следующие три правила полезно добавить в начало списка:

Код:
#5#~#True#~#^[^:/@]+:[^:/@]+@(www\.)?(?=[^/]+/)(?# login:pass@example.com -> example.com)#~##~#False#~#True
#5#~#True#~#^([^:/]+):\d+/(?# example.com:8080 -> example.com)#~#\1/#~#False#~#True
#5#~#True#~#^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/(?# 123.123.123.123 -> 123-123-123-123.ip)#~#\1-\2-\3-\4.ip/#~#False#~#True

Все правила отлажены и работают. Впрочем если б я все это сейчас делал, то уменьшил бы вложенность.
Сообщить модератору   Записан
mirny
Пользователь
**

Репутация: +11/-1
Offline Offline

Сообщений: 84


« Ответ #35 : 08 мая 2011, 16:11:53 »



Модифицировал структуру из своего предыдущего поста так, как мне давно хотелось. В правила добавлены комментарии. На пикче показано отображение адресов: mail.google.com; google.com; bash.org.ru

Желающие могут тестить.

Код:
True#~#^([^./]*)\.([a-z]{2,4})/(?# somesite.com/ -> com.somesite/www/)#~#\2.\1/www/#~#False#~#True
True#~#^([^./]+)\.([^./]+\.)?([^./]+\.)?([^./]+\.)?([^./]+\.)?([^./]+\.)?([^./]+\.)?([^./]*)\.([a-z]{2,4})/(?# sub7.sub6.sub5.sub4.sub3.sub2.sub1.somesite.com/ -> com.somesite/sub1.sub2.sub3.sub4.sub5.sub6.sub7/)#~#\9.\8/\7\6\5\4\3\2\1/#~#False#~#True
True#~#^([a-z]{2}\.)(com?|net|org|biz|edu|gov|me|ac|pp|int?|ltd|plc)/(?!www/)([^/.]*)/(?# uk.co/somesite/ -> uk.co.somesite/www/)#~#\1\2.\3/www/#~#False#~#True
True#~#^([a-z]{2}\.)(com?|net|org|biz|edu|gov|me|ac|pp|int?|ltd|plc)/([^/.]*)\.([^/]+)/(?# uk.co/somesite.sub1.sub2.sub3.sub4.sub5.sub6/ -> uk.co.somesite/sub1.sub2.sub3.sub4.sub5.sub6/)#~#\1\2.\3/\4/#~#False#~#True
« Последнее редактирование: 08 мая 2011, 16:27:44 от mirny » Сообщить модератору   Записан
mirny
Пользователь
**

Репутация: +11/-1
Offline Offline

Сообщений: 84


« Ответ #36 : 30 мая 2011, 01:37:58 »

Тип файла я бы писал не в тело документа, как это делается сейчас, а прибавлял к названию файла в кэше.

Как-то так, например:

Код:
http://somesite.com/xmldoc.php  -> somesite.com\xmldoc.php#.xml
http://somesite.com/picture.php -> somesite.com\picture.php#.jpg
http://somesite.com/            -> somesite.com\#.html

В чем профит:
- новый список «не обновлять» станет проще
- файлы из кэша легче открывать, когда они с правильным расширением
- ХЦ в автономном режиме сможет отдавать правильные заголовки, ориентируясь на расширение файла в кэше
- ????

Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #37 : 30 мая 2011, 09:22:06 »

Тип файла я бы писал не в тело документа, как это делается сейчас, а прибавлял к названию файла в кэше.

А название кодировки HTML куда девать? Она тоже в файл пишется.

Цитировать
- новый список «не обновлять» станет проще

Не станет. Список «Не обновлять» работает по исходным URL, а не по преобразованным.

Кроме того, для HC уже есть расширения из группы «Не обновлять...», которые работают по типам файлов,  невзирая на URL.

Цитировать
- файлы из кэша легче открывать, когда они с правильным расширением

Кому легче? Пользователю?
HC станет намного сложнее, т.к. в момент запроса определить точное имя файла будет невозможно. Придётся перебирать все возможные варианты, что отнимет время и нагрузит диск лишней работой!

Цитировать
- ХЦ в автономном режиме сможет отдавать правильные заголовки, ориентируясь на расширение файла в кэше

Он и сейчас это хорошо умеет, ориентируясь на сигнатуры файлов и те подсказки, которые сам себе оставил.


P.S. При желании, можешь сам написать расширение, которое будет делать то, что ты предлагаешь. Но сразу предупреждаю, что работа НС значительно замедлится!

Сообщить модератору   Записан
mirny
Пользователь
**

Репутация: +11/-1
Offline Offline

Сообщений: 84


« Ответ #38 : 30 мая 2011, 13:18:32 »

>А название кодировки HTML куда девать? Она тоже в файл пишется.

Код:
<head>
<!-- text/html; charset=windows-1251 from header (HC) -->
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

Писать кодировку в файл вообще не нужно, ящитаю (в нынешнем виде уж точно, см пример выше — код взят из этой самой страницы в кэше), а то и вредно, если это файл css или xml — они от этого ломаются. Как вариант можно конвертить все в utf-8 либо вписывать кодировку правильно, что сложнее.

Сейчас ухожу, как вернусь — допишу по другим пунктам.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #39 : 30 мая 2011, 14:20:13 »

Писать кодировку в файл вообще не нужно, ящитаю (в нынешнем виде уж точно, см пример выше — код взят из этой самой страницы в кэше),

В этом конкретном случае не нужно. Но много было случаев, когда кодировка вообще не указана в файле или указана неправильная! Из-за чего браузер начинал показывать из кэша вместо текста кракозябы.

Писать в HTML свою строку с Content-Type HC стал не сразу и не от хорошей жизни. Много проблем было до этого решения...

Цитировать
а то и вредно, если это файл css или xml — они от этого ломаются.

А в эти файлы свою строку никто и не пишет! Если у тебя есть конкретные примеры, то это баг. Дай ссылку - будем исправлять.

Цитировать
Как вариант можно конвертить все в utf-8

Плохой вариант, начиная от лишней работы и кончая размером файла на диске.

Цитировать
либо вписывать кодировку правильно, что сложнее.

Раньше так и было, но были проблемы, пришлось отказаться. HC стал дописывать в HTML свою строку в виде комментария.
Сообщить модератору   Записан
Страниц: 1 [2] 3  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: