Как работает сборка мусора в отношении Ctx.Owner в scala.rx?

Я пытаюсь обернуть голову, как именно владельцы работают в scala.rx. На данный момент у меня есть веб-приложение Scala.js, которое просто импортирует rx.Ctx.Owner.Unsafe._ везде, где я использую Rxs. Это - однако - приводит к созданию большого количества отдельных элементов DOM, потому что этот небезопасный глобальный владелец сохраняет ссылку на все RxОн когда-либо создан и никогда не отпускает их. Таким образом, все элементы DOM, которые я создаю с помощью scalatags и scalatags-rx, остаются в моем приложении навсегда как отдельные элементы.

То, что я хотел бы сделать сейчас, это создать implicit val pageOwner: Ctx.Owner = Ctx.Owner.safe() для каждой из страниц моего приложения и после перехода от этой страницы, я хотел бы как-то kill() все Rxпринадлежат этому владельцу, поэтому они могут быть собраны мусором. Здесь нет kill() метод, определенный на Ctx.Owner, поэтому мне было интересно, если сборка мусора будет работать, если сам владелец мусора.

0 ответов

Другие вопросы по тегам