Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度,router.navigate在页面重新加载后首次延迟_Angular_Typescript - Fatal编程技术网

Angular 角度,router.navigate在页面重新加载后首次延迟

Angular 角度,router.navigate在页面重新加载后首次延迟,angular,typescript,Angular,Typescript,我试着做一个简单的路由器。导航(): 它按预期工作,唯一的问题是,在每次重新加载新页面后,路由器将URL更改为新请求的URL之前,需要花费0.5-1秒的时间。navigateToEmployeeView()会立即执行,但要导航到../employee,确实需要一些时间。它会在当前URL上停留一段时间,直到它最终导航到新请求的URL。但这只会在每次重新加载后第一次发生。之后,导航到新的URL会立即发生 有人知道在重新加载页面后,什么会延迟第一次导航到新URL吗 编辑: 这里定义了路线 const

我试着做一个简单的
路由器。导航()

它按预期工作,唯一的问题是,在每次重新加载新页面后,路由器将URL更改为新请求的URL之前,需要花费0.5-1秒的时间。
navigateToEmployeeView()
会立即执行,但要导航到
../employee
,确实需要一些时间。它会在当前URL上停留一段时间,直到它最终导航到新请求的URL。但这只会在每次重新加载后第一次发生。之后,导航到新的URL会立即发生

有人知道在重新加载页面后,什么会延迟第一次导航到新URL吗

编辑:

这里定义了路线

const homeRoutes: Routes = [
  {
    path: '',
    component: HomeComponent
  },
  {
    path: 'employee',
    loadChildren: 'app/employee/employee.module#EmployeeModule',
    canActivate: [AuthGuard]
  },
  // more stuff 
];

@NgModule({
  imports: [RouterModule.forChild(homeRoutes)],
  exports: [RouterModule]
})
export class HomeRoutingModule {
}

这可能不是问题,只是连接速度缓慢而已


考虑到模块是延迟加载的,您只会在页面重新加载时体验到速度减慢;这可能是因为浏览器在您的连接上第一次获取延迟加载的模块需要多长时间。(通过查看浏览器开发控制台上的“网络”选项卡进行检查)。

路由是延迟加载的模块,还是路由上有任何解析程序。您可以共享此路由的配置吗?使用“按URL导航”时是否存在相同的问题?this.router.navigateByUrl('/employee');我想你的AuthGuard有问题,你能分享它的代码吗please@c_ogoo是的,路线很懒散,我分享了上面的代码@是的,如果我使用你建议的代码,我也会遇到同样的问题@FatehMohamed这不应该是问题,因为即使我删除
canActivate:[AuthGuard]
属性,问题仍然会发生。在这种情况下,AuthGuard根本不涉及,但问题仍然存在。问题可能是连接速度,因为浏览器需要加载模块才能导航到它
const homeRoutes: Routes = [
  {
    path: '',
    component: HomeComponent
  },
  {
    path: 'employee',
    loadChildren: 'app/employee/employee.module#EmployeeModule',
    canActivate: [AuthGuard]
  },
  // more stuff 
];

@NgModule({
  imports: [RouterModule.forChild(homeRoutes)],
  exports: [RouterModule]
})
export class HomeRoutingModule {
}