Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Кэширование данных (не страниц!) на asp.net MVC + Angular / 6 сообщений из 6, страница 1 из 1
09.09.2016, 15:47
    #39306696
TimeCoder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование данных (не страниц!) на asp.net MVC + Angular
Приветы,
ситуация такова: есть сайт, на нем статьи и теги. У пользователя есть набор избранных статей, нужно посчитать, сколько у него избранных статей в каждом тэге, и отобразить эту инфу. Запрос будет, видимо, довольно тяжелый, на каждый round-trip считать это тяжело. Как бы закэшировать? Т.е. один раз посчитать, а потом обновлять при добавлении/удалении статей из избранного?
Можно, конечно, просто хранить в сессии - боюсь, с ростом числа пользователей это будет тяжело. Хранить в базе? На клиенте? Может есть какие-то готовые фреймворки?
спасибо
...
Рейтинг: 0 / 0
09.09.2016, 16:41
    #39306756
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование данных (не страниц!) на asp.net MVC + Angular
TimeCoderХранить в базе
...
Рейтинг: 0 / 0
09.09.2016, 17:06
    #39306776
TimeCoder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование данных (не страниц!) на asp.net MVC + Angular
Monochromatique,
хорошо. Допустим, сам тэг содержит Id и Название, их список получаем (EF) одним запросом. Он легкий, и это происходит при каждом отображении страницы. Хочется в этот же объект добавить поле Counter, но реально, его придется считать хитрее. Получается, что один раз посчитав, придется это где-то отдельно хранить. Либо одной строкой, либо набором объектов Id Тэга - Количество статей.
Первым запросом получили тэги.
Вторым запросом получаем счетчики для них. Вроде не сильно затратно.
Придется видимо добавить в класс тэга поле Counter (отключив мапинг на базу). Или же попробовать его на уровне JS добавить перед рендером. Как-то пробежаться по всем тэгам и из результатов второго запроса проставить цифры. Да уж, много телодвижений.
...
Рейтинг: 0 / 0
09.09.2016, 17:23
    #39306783
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование данных (не страниц!) на asp.net MVC + Angular
TimeCoderMonochromatique,
хорошо. Допустим, сам тэг содержит Id и Название, их список получаем (EF) одним запросом. Он легкий, и это происходит при каждом отображении страницы. Хочется в этот же объект добавить поле Counter, но реально, его придется считать хитрее. Получается, что один раз посчитав, придется это где-то отдельно хранить. Либо одной строкой, либо набором объектов Id Тэга - Количество статей.
Первым запросом получили тэги.
Вторым запросом получаем счетчики для них. Вроде не сильно затратно.
Придется видимо добавить в класс тэга поле Counter (отключив мапинг на базу). Или же попробовать его на уровне JS добавить перед рендером. Как-то пробежаться по всем тэгам и из результатов второго запроса проставить цифры. Да уж, много телодвижений.

O_O

Просто при добавлении статьи в избранное и удалении её оттуда - вычисляйте агрегат и записывайте его. Показания тегов читайте из агрегата. Вот и всё.
...
Рейтинг: 0 / 0
09.09.2016, 17:33
    #39306792
TimeCoder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование данных (не страниц!) на asp.net MVC + Angular
Monochromatique,
т.е. вы предлагаете в таблицу тэгов добавить поле счетчика, первый раз его заполнить скриптом, а в коде прописать, что при добавлении/удалении статьи из избранного, модифицируем это поле? (т.е. кэшировать ничего не надо)
...
Рейтинг: 0 / 0
09.09.2016, 17:39
    #39306793
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование данных (не страниц!) на asp.net MVC + Angular
TimeCoderMonochromatique,
т.е. вы предлагаете в таблицу тэгов добавить поле счетчика, первый раз его заполнить скриптом, а в коде прописать, что при добавлении/удалении статьи из избранного, модифицируем это поле? (т.е. кэшировать ничего не надо)

Я предлагаю добавить агрегат. Какие таблицы/поля - это уже детали. Суть - по ID юзера считать из базы теги и счетчики, ничего не вычисляя.

Если это так критично.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Кэширование данных (не страниц!) на asp.net MVC + Angular / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]