Видел на форуме идеи о вычислении т.н. "рейтинга" файлов. Типа чем чаще используется, чем выше рейтинг, и при очистке удалять самые "нерейтинговые". По-моему, это очень верное направление, только нужно его как-то воплотить. Если хранить информацию о дате и времени обращения к каждому файлу, получится весьма затратно, но можно периодически сбрасывать статистику одним файлом на диск, и обращаться ко всем таким файлам статистики только при операциях очищения кеша (раз в месяц, например. Ну здесь, конечно, зависит от скорости заполнения кеша. Но в любом случае не часто). Я же верно понимаю, что расширение "IgnoreOnceVisitedSites" занимается практически тем же, только на уровне доменов, и реализовать похожее расширение, но на уровне файлов, не сложно?
Теоретически не должно быть сложно, но из-за того, что количество файлов может на порядки превышать количество доменов, с которым я имел дело, может быть проблематично вести такую статистику в обычном текстовом файле. Ну и памяти при таком подходе буте расходоваться значительно больше (не десятки килобайт, а уже 10-20 MB). Тут уже сложно без хоть какой-то базы данных.
Добавлено: 21 Апрель 2013, 17:29:24
А как на счет того, что бы ввести список исключений? Т.е. для доменов в этом списке кэширование будет происходить всегда (начиная с первого визита) или же наоборот - никогда.
Т.е. создать еще один .txt файл и в нем что то типа такого:
site.ru 1 - кэшировать с первого посещения
или же:
site.ru 0 - никогда не кэшировать
Хотя последнее наверно лишнее, ведь запретить кэшировать можно в белом списке НС.
Отдельный файл с исключениями думаю будет полезен.
Сейчас для этой цели можно в файле базы данных IgnoreOnceVisitedSitesDB.txt найти этот домен после первого визита (или вручную добавить аккуратно) и увеличить цифру количества визитов до Вашего значения параметра visitsCountToStartCache.
Отдельный файл был бы удобнее, но у меня нет возможности добавить такой функционал.