Добавление значительного количества текстовых элементов в D3 вызывает проблемы с производительностью - PullRequest
0 голосов
/ 04 августа 2020

Я разрабатываю приложение D3, в котором используется много текста. Поскольку текстовых элементов много, панорамирование с использованием масштабирования D3 вызывает некоторое отставание. Есть ли способ улучшить производительность моего приложения? Я рад выслушать любые предложения, которые могут быть у вас. Я думал о разбивке на страницы моих данных и обнаружении событий панорамирования, но мой пользовательский интерфейс очень сложен, и пользователь может свободно размещать вещи так, как он хочет, поэтому я не уверен, как go реализовать решение панорамирования / разбивки на страницы.

1 Ответ

1 голос
/ 05 августа 2020

На такой открытый вопрос обязательно будут ответы, основанные на мнении, и без дополнительного контекста вы также обязательно получите несколько бесполезных, но здесь вы go: это зависит от того, что вы хотите и что вы подразумеваете под «значительное количество».

  1. Предположим, что значительный объем составляет> 1000 элементов, рассмотрите возможность использования холста вместо SVG. Конечно, если вы можете щелкнуть по отдельным текстовым узлам, это доставит больше хлопот, но это должно быть действительно хорошо при панорамировании / масштабировании.
  2. Если это невозможно, посмотрите свой код. Вы перемещаете все текстовые узлы по отдельности? Если это так, поместите их все в один узел g и присвойте этому узлу transform и zoom. Другими словами, сделайте этот узел ответственным за все глобальное перемещение и разместите текстовые узлы только относительно друг друга.
  3. Если это также невозможно, рассмотрите возможность удаления текстовых узлов, если они находятся за пределами границ SVG. Перемещение невидимых узлов требует больших вычислительных мощностей, будьте внимательны. Это, наверное, самое сложное решение, поэтому попробуйте его в последнюю очередь.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...