#angular #angularjs #ssg #scully #angular-scully
#угловой #angularjs #ssg #скалли #угловой-скалли
Вопрос:
У меня есть угловой проект. В моем домашнем компоненте я загружаю текущие данные со своего внутреннего сервера методом ngOnInit. Это работает просто отлично. Но для повышения производительности я использовал Скалли, которая сгенерировала статическую страницу для моего домашнего компонента. Теперь, когда я загружаю свою страницу в браузер, она загружает статическую страницу. в котором есть все последние данные. это означает, что мне не нужно снова загружать данные.
Сгенерированная страница работает так, как ожидалось, даже когда я отключаю Javascript. Поэтому мой вопрос в том, как я могу избежать загрузки живых данных, когда на странице, загруженной браузером, это уже есть.
Мой первоначальный подход состоял в том, чтобы проверять элементы с помощью объектов документа, но, к сожалению, как только я нахожусь в ngOnInit, он не находит элемент, даже если он там есть. вот мой код.
ngOnInit(): void { let blogItems = document.getElementsByClassName("blog-item"); let isRendered : boolean = blogItems != null amp;amp; blogItems.length gt; 0; if(isRendered) return else { console.log("not rendered yet"); console.log(blogItems) console.log("count: " blogItems.length) } //code to load live data }
есть ли какой-нибудь способ добиться этого?
Если я использую статический рендеринг на стороне клиента, то производительность, оцененная lighthouse, довольно плохая (даже с угловым проектом по умолчанию, который создается новым приложением ng), поэтому мне приходится переходить на статические сгенерированные страницы.