Лучший способ управлять коллекциями изображений в Blazor на стороне клиента - PullRequest
0 голосов
/ 21 января 2020

Я хочу создать коллекцию прокручиваемых изображений, и у меня есть несколько идей о том, как go об этом. Я пошел по нескольким неверным путям, и мне пришлось отказаться, поэтому я решил открыть свой текущий план на тот случай, если кто-нибудь сможет мне воспользоваться своим опытом, чтобы сообщить мне, где я могу пойти не так.

Загрузка

Изображения хранятся в базе данных SQL в двоичном формате, доступны через DbContext и хранятся в DbSets. Я отделил свои объекты, которые используют изображения от самих изображений. Это позволяет мне создавать легкую нагрузку и полную загрузку, где небольшая нагрузка загружает всю информацию, за исключением тяжелых частей (в данном случае это двоичные данные изображения). Это позволяет витрине изображения очень быстро заполнять сетку, а затем go через каждое изображение в фоновом режиме, загружая их полностью.

Это был обходной путь, потому что я не смог найти или выяснить solid компонент для отложенной загрузки / виртуальной прокрутки / Intersecion Observer.

Я не хочу, чтобы пользователю приходилось перезагружать все эти изображения после их однократной загрузки. Я бы подумал, что dbset будет хранить данные после загрузки и мгновенно возвращать их для всех других запросов после этого момента. Но, похоже, это не так. Поскольку время загрузки, кажется, присутствует каждый раз.

Контент захватывается следующим образом

using (var context = new SampleContext())
{
    var author = context.Authors.ToList();
}

У меня вопрос, должен ли я хранить результат этого запроса в самом контроллере?

Или государственный объект?

Или я что-то неправильно понимаю в dbSet и должен быть в состоянии извлечь их из памяти после их однократной загрузки?

...