Так, я попробовал переделать архитектуру так, чтобы использовать WebWorkers.
Теперь – ВКЛАДКА ПАДАЕТ! ))
Причём я не кривой, я всё аккуратно делаю: один воркер, один запрос, один коллбек, один postMessage, и один небольшой объект в ответе.
Не сотни воркеров, и не сотни раз в секунду передаются данные.
И вкладка падает не во время операции, а уже после – когда трогаю/прокручиваю страничку, или сворачиваю окно браузера.
Пробовал изменить функцию вызова воркера – чтобы он не вызывался, а всё считалось асинхронно на основном потоке – тогда работает.
Запускаю воркера, но не передаю ему задачу – работает.
Передаю задачу, но не пользуюсь результатами (и не возвращаю объект в основную программу) – уже падает.
Воркер обращается к IndexedDB, причём успешно.
@Oracle_CБлин, думал, мой код воркера случайно где-то (даже знаю, где именно)
document
трогает, и поэтому сыпется.
Но нет! Специально проверил, не в DOM дело (и в любом случае, это вызвало бы ошибку, а не краш).
Повышенного расхода памяти или ЦП тоже не наблюдаю.