Когда обновлять данные IndexedDB в приложении Blazor WebAssembly ⇐ C#
-
Anonymous
Когда обновлять данные IndexedDB в приложении Blazor WebAssembly
У меня есть проект 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 (возможно ли это вообще)? Когда они открывают страницу со всеми продуктами? На самом деле мне нужно обновлять данные о продукте только один раз в день, когда они впервые открывают его в этот день.
У меня есть проект 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 (возможно ли это вообще)? Когда они открывают страницу со всеми продуктами? На самом деле мне нужно обновлять данные о продукте только один раз в день, когда они впервые открывают его в этот день.
Мобильная версия