В компоненте обертки представлено около трехсот компонентов, и он занимает много времени для рендеринга. Но мне нужно тысяча компонентов для визуализации внутри контейнера-контейнера. Как я могу добиться этого без каких-либо проблем с производительностью при визуализации компонентов Image shows the rendering time taken by 300 components which is too muchКак оптимизировать рендеринг компонентов в Ember JS
ответ
Если у вас есть свиток и все ваши компоненты не в viewport в то же время, вы можете использовать Proxy Pattern
.
Углеродный аддон под названием ember-in-viewport
, чтобы определить, находится ли ваш компонент в окне просмотра или нет. Используя его, вы можете реализовать прокси-шаблон.
Адрес sample twiddle. На application.hbs
, если вы используете my-proxy-component
вместо my-component
, рендеринг страницы будет почти в 3 раза быстрее.
Эти советы своего рода Hacky, но может помочь:
Вы можете ленивой нагрузки некоторые компоненты, как, например, загружать наиболее важные из них, а затем загрузить остальные меняющийся вычисляемый свойство после фиксированного времени ожидания на didRender (во время незанятого состояния).
Например:
onDidRender: Ember.on('didRender', function() {
Ember.run.later(() => {
this.set('displayLazyItems', true);
}, 2000);
})
Еще одна вещь, которую вы можете сделать, это встроенный код вместо того, чтобы создавать новый компонент для мелких предметов. Оказание им может занять некоторое время.
Запишите временную шкалу и убедитесь, что производительность на самом деле происходит из времени рендеринга, иногда это фактически выполнение javascript или загрузка, которая испортилась.
Наконец, ember 2.10 включает в себя мерцание 2, этот новый механизм рендеринга может оптимизировать время рендеринга до 50%, вы можете захотеть его использовать.
- 1. Ember Отметьте рендеринг компонентов перед обещанием
- 2. Vue JS - рендеринг нескольких экземпляров компонентов
- 3. Как оптимизировать рендеринг в андроиде webview
- 4. Многопоточный рендеринг Java, как оптимизировать
- 5. Рендеринг динамических компонентов в vue.js?
- 6. Рендеринг нескольких компонентов
- 7. Как переопределить рендеринг гибких компонентов?
- 8. Отложенный рендеринг компонентов React
- 9. Reactjs async рендеринг компонентов
- 10. рендеринг. Hbs шаблоны в Ember
- 11. Рендеринг взглядов в Ember глобально
- 12. Библиотеки компонентов Ember
- 13. Проверка компонентов Ember-Validations
- 14. SetupController для компонентов Ember
- 15. Имитация пользовательского ввода в тестах компонентов Ember
- 16. Ember: свойства связывания в частичных шаблонах компонентов
- 17. Как оптимизировать JS-код?
- 18. Оптимизировать код в реакции JS
- 19. Рендеринг данных от светильников в Ember
- 20. Как оптимизировать код JS
- 21. ReactJs: рендеринг коллекции динамических компонентов
- 22. Re Рендеринг компонентов после нажатия
- 23. Префикс предотвращает рендеринг других компонентов
- 24. Ember/Handlebars: Пользовательский вспомогательный рендеринг
- 25. Рендеринг компонентов ExtJs без панелей?
- 26. Поиск/отладка компонентов/Ember компонент
- 27. Ember рендеринг только корневого шаблона
- 28. рендеринг в альтернативный макет в ember 2
- 29. Рендеринг реактивных компонентов с помощью WebWorkers
- 30. ассоциации в ember js
Являются ли эти компоненты объектами данных, которые вы получаете из своего api? Вам действительно нужны все, что было сделано при запуске, или вы предпочитаете какую-то разбивку на страницы? – Ninigi
Да, компонентные объекты данных из api. И мне действительно нужно их перечислить и реализовать выбор компонентов, а затем, наконец, отсортировать выбранные элементы в списке с помощью перетаскивания –
Хм, я думаю, это поможет увидеть какой-то код, особенно ваш маршрут, может быть? Не возлагайте свои надежды слишком высоко, но может быть, просто невозможно ускорить его, чем вы, возможно, уже сделали. – Ninigi