【问题标题】:Abort service calls, while switching routes in angularjs中止服务调用,同时在 angularjs 中切换路由
【发布时间】:2017-04-27 13:14:48
【问题描述】:

问题陈述: 我正在使用 3 个标签。选项卡-a ,选项卡-b 和选项卡-c。 每个选项卡将在文档加载时对 Web api 进行 5-6 次服务调用。我的问题是,当我单击 tab-a 时,来自 tab-a 的调用会在更改路线时快速启动。但是,如果我同时单击 tab-b,我之前的呼叫将在处理中,并且将从 tab-b 添加新的 6 个呼叫。我想在切换路由时中止来自 tab-a 的先前呼叫。因为它会影响我的 Angular SPA 的性能。

我正在使用 Angular js 路由。

app.config(function ($routeProvider) {
$routeProvider
.when('/daily',
{
    title: 'Daily - Stats',
    templateUrl: '/SPA/Daily.html'
})
.when('/weekly',
{
    title: 'Weekly - Stats',
    templateUrl: '/SPA/Weekly.html'
})

我有一项服务可以从 Web api 获取和发布数据。

【问题讨论】:

标签: angularjs


【解决方案1】:

你可以在 $routeprovider 中使用 Resolve (我没有测试过代码) 喜欢:

.when('/daily',
{
title: 'Daily - Stats',
templateUrl: '/SPA/Daily.html',
resolve: {
   foo: function($http){
      $http.pendingRequests.forEach(function (pendingReq) {
      //here cancel pendingReq like pendingReq.resolve()
   }
}

或者您可以使用 RoutechangeStart。

您还可以在这篇文章中找到更多信息: AngularJS abort all pending $http requests on route change

【讨论】:

  • 不客气,记得接受回答,其他有同样问题的人
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-29
  • 1970-01-01
  • 2021-09-12
  • 2015-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多