2016-04-15 9 views
1

私はAngularJS HTTPインターセプタがありますAngularJS HTTPインターセプタのリクエスト機能が何度も呼び出されるのはなぜですか?

$httpProvider.interceptors.push([ 
    "$rootScope", "$q", "$location", 
    function ($rootScope, $q, $location) { 

     return { 
      'request': function (config) { 
       var loc = $location.path(); 
       console.log("path: " + loc); 
       .... 
       .... 
       return config; 
      }, 
      ... 
      }; 
     } 
    ]); 

私は25の項目の配列を返す呼び出しを行います。アイテムは、ng-repeatを使用してhtmlに取り込まれます。この表示の結果、要求機能に対して75回の呼び出しが行われます。

なぜ誰かが1つのHTTP要求に対して非常に多くの呼び出しを行う理由を説明できますか?

ありがとうございました。

答えて

2

httpインターセプタがで呼び出されると、データリクエストだけでなく、リクエスト角度が発生します。テンプレート要求も同様に、なぜそれが高いのかを説明するかもしれません。


更新:テンプレートを除外するために私は常に以下の機能を使用します。

function isLocalUrl(url) { 
    return !(url.indexOf('http://') === 0 || url.indexOf('https://') === 0); 
} 

とこのようにそれを呼び出します。それを説明するだろう

return { 
    'request': function (config) { 
     if(isLocalUrl(config.url)) 
      return config; 
    } 
} 
+0

。これを回避するために確立されたパターンがあり、データ要求だけにチェックを限定していますか? – Sako73

+0

@ Sako73更新された回答を確認する –

関連する問題