Когда обновлять данные IndexedDB в приложении Blazor WebAssemblyC#

Место общения программистов C#
Ответить
Anonymous
 Когда обновлять данные IndexedDB в приложении Blazor WebAssembly

Сообщение Anonymous »


У меня есть проект Blazor WebAssembly (PWA) с отдельным API ASP.NET, который используется для доступа к данным о продукте, хранящимся в базе данных. Вызов конечной точки /api/products/getAllProducts занимает несколько секунд, поскольку существует довольно много продуктов, которые необходимо вернуть. Данные о продукте обновляются службой на сервере один раз в день.

Данные о продуктах необходимо хранить для автономного использования клиентом, поэтому я сейчас внедряю IndexedDB для использования в качестве локального хранилища продуктов. Этот код несколько непроверен, поскольку в данный момент он просто находится в блоке кода страницы продуктов:

private IEnumerable? продукты; защищенное переопределение асинхронной задачи OnInitializedAsync() { // получаем продукты из API продукты = ждут Http.GetFromJsonAsync("/api/products/GetAllProducts"); // добавляем продукты, полученные из API, в локальное хранилище используя var db = await DbFactory.Create(); db.allProducts.Clear(); foreach (вар продукт в продуктах) { db.allProducts.Add(продукт); } ожидайте db.SaveChanges(); // получаем товары из локального хранилища продукты = db.allProducts; } Мой вопрос: когда мне следует обновить/заполнить локальный список продуктов IndexedDB из вызова API без замедления/остановки моего приложения? При запуске приложения blazor (возможно ли это вообще)? Когда они открывают страницу со всеми продуктами? На самом деле мне нужно обновлять данные о продукте только один раз в день, когда они впервые открывают его в этот день.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»