У меня есть клиентское JS-приложение, которое использует IndexedDB для хранения своего состояния. Работает отлично. Тем не менее, он медленный, потому что я часто читаю и записываю в IndexedDB, чтобы состояние не становилось несогласованным, когда открываются несколько вкладок.
Моя идея заключалась в том, что... все элементы доступа к базе данных внутри Service Worker, а затем я могу кэшировать значения там в памяти, не беспокоясь о том, что другая вкладка могла изменить базу данных.
Кажется, что все работает нормально, за исключением того, что некоторые части моего приложения занимают много времени. Я могу сообщить статус (например, "X% done" ) от Рабочего Рабочего в мой пользовательский интерфейс. Но как Firefox, так и Chrome, похоже, убивают рабочего, если он работает более 30 секунд, что слишком мало для меня.
Есть ли способ ограничить это ограничение? Если нет, то идеи для достижения чего-то подобного? Я думаю, что совлокальный рабочий может сделать это, за исключением поддержки браузеров, и я не ожидаю, что теперь это улучшится с учетом рабочих-служб.