![]() |
|
|
#1
|
||||
|
||||
![]() Хочу спросить насчет реализации следующего
Неизвестное число пользователей, отсылают запросы и им отправляются страницы книг которые они читают. Но как быть, постоянно грузить книгу при каждом запросе и копировать нужный текст. Или же если оставлять в TstringList то нам не известно сколько пользователей будет читать для каждого надо будет свой TstringList. Да и к тому же если оба одну книгу запросят надо както знать из какой переменной её взять, в общем получается куча гемороя, и кроме как через массивы вариантов не вижу, с вариантом постоянной загрузки проще, но медленней, война и мир к примеру в файле txt 3мб весит, и так каждый раз грузить. Хотел бы услышать советы. |
#2
|
|||
|
|||
![]() Организуй фабрику (есть прямо такой паттерн).
Когда у тебя приходит запрос страницы из книги, то ты обращаешься к фабрике, а уже она проверяет, есть ли в памяти такая книга и, если нет, то подгружает. Ну в номер страницы хранится в переменных сессии клиента. Т.е. данные буду в одном экземпляре. |
#3
|
||||
|
||||
![]() хм, ну это логично, а грузить куда? в массив TStringList? потом когда книгу прекратили читать нодо еще и очищать, а гдето вести запись какие массивы свободны
|
#4
|
|||
|
|||
![]() Цитата:
Грузить - в зависимости от формата. Надо смотреть по обстоятельствам. По поводу очистки. Ну я бы подумал на счет ограничения по времени и кол-ву запросов. Например если к конкретной книге не обращаются в течении 10 минут и 100 запросов, то книгу выгружаем. Можно еще грузить не всю книгу, а некоторый набор странриц под конкретного пользователя. Но тут уже зависит от формата, а котором хранится книга. Иной раз дешевле загрузить все. |
#5
|
||||
|
||||
![]() все абсолютно txt будет, насчет очистки у меня проблем нету, я больше клоню к тому что с массивами много гемороя
|
#6
|
||||
|
||||
![]() Это с каких пор массивы стали проблемными?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |