У нас есть одностраничный веб-сайт, который использует Barba.js для загрузки страниц, загруженных Ajax.У нас есть фоновая анимация WebGL на нескольких страницах, и она работает хорошо, когда вы загружаете только одну анимацию за раз.Проблема, с которой мы сталкиваемся, состоит в том, что, поскольку это одностраничный веб-сайт, при переходе от страницы анимация WebGL с предыдущей страницы все еще работает.Это приводит к увеличению использования памяти при каждом переходе на новую страницу с содержимым WebGL.
Каков наилучший способ справиться с этим?Я провел всю эту неделю, занимаясь исследованиями, поэтому я знаю, что контексты WebGL - это только сборщик мусора.Все говорят, чтобы сохранить контекст для отображения позже, но это именно то, чего я пытаюсь избежать, потому что он использует тонну памяти и замедляет весь сайт, если я пытаюсь просто удерживать все контексты WebGL.
Я пробовал все грязные методы, которые я мог найти, чтобы попытаться найти и удалить все ссылки на контекст перед загрузкой следующей страницы.После трех дней попыток мне удалось немного сократить использование памяти, но не очень эффективно.Я хотел найти лучшее решение.
На данный момент я ищу предложения о том, как я могу преобразовать весь код WebGL в одну целостную структуру, чтобы каждая анимация могла включаться и выключаться всякий раз, когда они мне нужны,так что только одна анимация использует память одновременно.Это возможно?