Я разработал веб-приложение с Angular, Springboot и Jhipster. Я хочу знать, возможно ли оптимизировать загрузку приложения. если да, как я могу это сделать.
Вот результаты, которые я получаю
Вот компоненты navbar и home (загружаются первыми).
navbar .component.ts
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
import { JhiLanguageService } from 'ng-jhipster';
import { ProfileService } from '../profiles/profile.service';
import { JhiLanguageHelper, Principal, LoginModalService, LoginService } from '../../shared';
import { VERSION, DEBUG_INFO_ENABLED } from '../../app.constants';
@Component({
selector: 'jhi-navbar',
templateUrl: './navbar.component.html',
styleUrls: [
'navbar.css'
]
})
export class NavbarComponent implements OnInit {
inProduction: boolean;
isNavbarCollapsed: boolean;
languages: any[];
swaggerEnabled: boolean;
modalRef: NgbModalRef;
version: string;
constructor(
private loginService: LoginService,
private languageHelper: JhiLanguageHelper,
private languageService: JhiLanguageService,
private principal: Principal,
private loginModalService: LoginModalService,
private profileService: ProfileService,
private router: Router
) {
this.version = VERSION ? 'v' + VERSION : '';
this.isNavbarCollapsed = true;
this.languageService.addLocation('home');
}
ngOnInit() {
this.languageHelper.getAll().then((languages) => {
this.languages = languages;
});
this.profileService.getProfileInfo().subscribe((profileInfo) => {
this.inProduction = profileInfo.inProduction;
this.swaggerEnabled = profileInfo.swaggerEnabled;
});
}
changeLanguage(languageKey: string) {
this.languageService.changeLanguage(languageKey);
}
collapseNavbar() {
this.isNavbarCollapsed = true;
}
isAuthenticated() {
return this.principal.isAuthenticated();
}
login() {
this.modalRef = this.loginModalService.open();
}
logout() {
this.collapseNavbar();
this.loginService.logout();
this.router.navigate(['']);
}
toggleNavbar() {
this.isNavbarCollapsed = !this.isNavbarCollapsed;
}
getImageUrl() {
return this.isAuthenticated() ? this.principal.getImageUrl() : null;
}
}
home.component.ts
import { Component, OnInit } from '@angular/core';
import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
import { EventManager } from 'ng-jhipster';
import { Account, LoginModalService, Principal } from '../shared';
@Component({
selector: 'jhi-home',
templateUrl: './home.component.html',
styleUrls: [ 'home.css' ]
})
export class HomeComponent implements OnInit {
account: Account;
modalRef: NgbModalRef;
constructor(
private principal: Principal,
private loginModalService: LoginModalService,
private eventManager: EventManager
) {}
ngOnInit() {
/* this.principal.identity().then((account) => {
this.account = account;
}); */
this.registerAuthenticationSuccess();
}
registerAuthenticationSuccess() {
this.eventManager.subscribe('authenticationSuccess', (message) => {
this.principal.identity().then((account) => {
this.account = account;
});
});
}
isAuthenticated() {
return this.principal.isAuthenticated();
}
login() {
this.modalRef = this.loginModalService.open();
}
}
home.component. html
<div class="row">
<div class="col-md-3">
<!-- <span class="hipster img-fluid img-rounded"></span> -->
</div>
<div class="col-md-9">
<h1 class="display-4">Bienvenue!</h1>
</div>
</div>