当在Angular应用程序中调用location.back()时,视图加载时间很长

时间:2018-09-01 17:36:36

标签: angular cordova

我有一个cordova应用程序。 location.back()在设备或仿真器上的工作时间很长。为什么?有解决办法吗?

constructor(
  private location: Location
) { }

onClick(){
  this.location.back();
}

1 个答案:

答案 0 :(得分:1)

您可能正在NgZone之外奔跑。您的代码显然是对您实际工作的简化。要测试您是否确实在区域中,可以执行以下操作:

onClick(){
  this.location.back();
  console.log('In Zone:', NgZone.isInAngularZone()) 
}

如果该记录为false,则应检查为什么退出该区域。同样,根据您发布的代码量,这是无法确定的。要检查变更检测是否确实存在问题,可以尝试以下操作以查看其是否更快:

// don't use this in production

constructor(
  private location: Location,
  private app: ApplicationRef
) { }

onClick(){
  this.location.back();
  this.app.tick();
}