大佬教程收集整理的这篇文章主要介绍了typescript – 我的角度2应用程序需要很长时间才能加载第一次用户,我需要帮助才能加快速度,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用angular2,带有firebase和typescript。
此外,我的应用程序工作正常,只是第一次访问主页的用户有这个问题。
我不知道是否可以在底部改进引导,或者我做错了什么。
这是我的app.ts文件:
import {Component,bind,provide,InjectablE} from 'angular2/core'; import {Bootstrap} from 'angular2/platform/browser' import {NgIf} from 'angular2/common'; import {Router,LOCATIOn,ROUTER_BINDINGS,RouterOutlet,RouteConfig,RouterLink,ROUTER_PROVIDERS,APP_BASE_HREF,CanActivate,OnActivate,Componentinstruction} from 'angular2/router'; import {http_PROVIDERS,http,Headers} from 'angular2/http'; import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core'; import {enableProdModE} from 'angular2/core'; enableProdMode(); import {LoggedInRouterOutlet} from './interceptor'; import {AuthservicE} from './services/authservice/authservice'; import {SocialservicE} from './services/socialservice/socialservice'; import {UserservicE} from './services/userservice/userservice'; import {OrganisationservicE} from './services/organisationservice/organisationservice'; import {NotificationservicE} from './services/notificationservice/notificationservice'; import {EmailservicE} from './services/emailservice/emailservice'; import {UserProfilE} from './models/profile/profile'; import {Organisation} from './models/organisation/organisation'; import {HeaderNavigation} from './components/header/header'; import {HeaderNavigationLoggedIn} from './components/header/headerNavigationLoggedIn'; import {HeaderNavigationLoggedInCompany} from './components/header/headerNavigationLoggedInCompany'; import {Footer} from './components/footer/footer'; import {SideMenuCompany} from './components/header/sideMenuCompany'; import {SideMenuUser} from './components/header/sideMenuUser'; import {Splash} from './components/splash/splash'; import {CreateJob} from './components/createJob/createJob'; import {SearchJobs} from './components/searchJobs/searchJobs'; import {Login} from './components/login/login'; import {Applications} from './components/applications/applications'; import {Register} from './components/register/register'; import {ForgotpassworD} from './components/forgotpassword/forgotpassword'; import {ChangepassworD} from './components/changepassword/changepassword'; import {ChangeEmail} from './components/changeemail/changeemail'; import {SocialRegister} from './components/socialregister/socialregister'; import {Admin} from './components/admin/admin'; import {Contact} from './components/contact/contact'; import {SearchUsers} from './components/searchusers/searchusers'; import {Jobs} from './components/job/jobs'; import {CompanyProfilE} from './components/company/company'; import {HomE} from './components/home/home'; import {DashboarD} from './components/dashboard/dashboard'; import {ProfilE} from './components/profile/profile'; import {UserApplications} from './components/userApplications/userApplications'; @Component({ SELEctor: 'app',providers: [Userservice,UserProfile,Organisationservice,Organisation],template: ` <Splash *ngIf="isLoggedIn"></Splash> <HeaderNavigation *ngIf="!isLoggedIn"></HeaderNavigation> <HeaderNavigationLoggedIn *ngIf="isLoggedIn && isUserLogin"></HeaderNavigationLoggedIn> <HeaderNavigationLoggedInCompany *ngIf="isLoggedIn && isCompanyLogin"></HeaderNavigationLoggedInCompany> <SideMenuCompany *ngIf="isLoggedIn && isCompanyLogin"></SideMenuCompany> <SideMenuUser *ngIf="isLoggedIn && isUserLogin"></SideMenuUser> <div class="content"> <router-outlet></router-outlet> </div> `,directives: [RouterOutlet,Splash,HeaderNavigation,HeaderNavigationLoggedIn,NgIf,HeaderNavigationLoggedInCompany,SideMenuCompany,SideMenuUser,Footer,LoggedInRouterOutlet] }) @RouteConfig([ { path: '/',component: Home,as: 'Home',data:{title: 'Welcome Home'}},{ path: '/home',useAsDefault: truE},{ path: '/login',component: Login,as: 'Login' },{ path: '/register/:id',component: Register,as: 'Register' },{ path: '/forgotpassword',component: Forgotpassword,as: 'Forgotpassword' },{ path: '/dashboard',component: Dashboard,as: 'Dashboard' },{ path: '/search',component: SearchJobs,as: 'Search' },{ path: '/profile',component: Profile,as: 'Profile' },{ path: '/setTings',component: CompanyProfile,as: 'SetTings' },{ path: '/jobs',component: Jobs,as: 'Jobs' },{ path: '/password',component: Changepassword,as: 'password' },{ path: '/email',component: ChangeEmail,as: 'Email' },{ path: '/applications',component: Applications,as: 'Applications' },{ path: '/socialRegister/:id',component: SocialRegister,as: 'SocialRegister' },{ path: '/socialRegister',{ path: '/applys',component: UserApplications,as: 'Applys' },{ path: '/contact',component: Contact,as: 'Contact' },{ path: '/searchTeachers',component: SearchUsers,as: 'SearchUsers' },{ path: '/createJob',component: CreateJob,as: 'CreateJob' },{ path: '/adminmarkchris2016',component: Admin,as: 'AdminMarkChris2016' },{ path:'/**',redirectTo: ['Home']} ]) @Injectable() export class AppComponent { router: Router; LOCATIOn: LOCATIOn; authservice: Authservice; userservice: Userservice isLoggedIn: Boolean = false; isCompanyLogin: Boolean = false; isUserLogin: Boolean = false; userProfile: UserProfile; constructor(_router: Router,_LOCATIOn: LOCATIOn,_authservice: Authservice,_userservice: Userservice,_userProfile: UserProfilE){ this.router = _router; this.LOCATIOn = _LOCATIOn; this.authservice = _authservice; thiS.Userservice = _userservice; thiS.UserProfile = _userProfile; this.isUserLoggedIn(this.LOCATIOn.path()); //On refresh this.router.subscribe((currentRoutE) => { this.isUserLoggedIn(currentRoutE); }) } isUserLoggedIn(currentRoutE): void{ this.authservice.checkIfLoggedIn().then((responsE) => { this.isLoggedIn = response if(this.isLoggedIn){ this.isUserOrganisationOrTeacher(); } if(currentRoute.subString(0,14) == "socialRegister" || currentRoute == "socialRegister" || currentRoute == "home" || currentRoute == "contact" || currentRoute == "" || currentRoute == "forgotpassword" || currentRoute == "login" || currentRoute.subString(0,8) == "register"){ this.isCompanyLogin = false; this.isUserLogin = false; this.isLoggedIn = false; } }); } isUserOrganisationOrTeacher(): void{ thiS.Userservice.checkIfProfileExists().then((responsE) => { this.isCompanyLogin = false; this.isUserLogin = false; if(responsE){ this.isUserLogin = true; this.isCompanyLogin = false; }else{ this.isCompanyLogin = true; this.isUserLogin = false; } }); } } bootstrap(AppComponent,[ROUTER_PROVIDERS,provide(APP_BASE_HREF,{useValue: '/'}),http_PROVIDERS,Authservice,Socialservice,Userservice,Emailservice,Notificationservice,ANGULAR2_GOOGLE_MAPS_PROVIDERS]);
我的意思是将所有文件转换成JavaScript,并以与Angular2相同的方式连接。这样您就可以将多个模块包含在单个JS文件中。这样您就可以减少http调用次数,将应用程序代码加载到浏览器中。
事实上,对于以下配置的SystemJS,您将每个模块有一个调用(它适用于开发,但在生产中并不真正有效):
<script> System.config({ packages: { app: { format: 'register',defaultExtension: 'js' } } }); System.import('app/boot') .then(null,console.error.bind(consolE)); </script>
这个答案可以提供关于模块解析如何工作的提示:
> How does Angular2 resolve imports?
您可以使用Gulp及其插件进行此包装:
> https://www.npmjs.com/package/gulp-tsc
> https://github.com/contra/gulp-concat
看到以下答案:
> Using Gulp to Concatenate and Uglify files
> https://github.com/JavascriptMick/angular2-gulp-typescript/blob/master/gulpfile.js
以上是大佬教程为你收集整理的typescript – 我的角度2应用程序需要很长时间才能加载第一次用户,我需要帮助才能加快速度全部内容,希望文章能够帮你解决typescript – 我的角度2应用程序需要很长时间才能加载第一次用户,我需要帮助才能加快速度所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。