3

前のリクエストが応答を返す前に、同じリクエストを API に繰り返し送信しないようにする必要があります。私はいくつかの解決策を見つけました。しかし、アプリでより多くの API 呼び出しがあるため、応答を待っている間はボタンを無効にしたくありません。

$provider .config() で本当に何かをする必要があります。ここで方法を見つけました( http://blog.codebrag.com/post/57412530001/preventing-duplicated-requests-in-angularjs )。

しかし、もっと明確なコードが必要です。これに関するあらゆる種類の参照は大歓迎です。

4

4 に答える 4

2

ファイルにあると$httpしましょう。controller.js

サーバーへの多くのリクエスト

$http.get('/link/to/file.php');

このメソッドを何回呼び出しても、サーバーへのリクエストは 1 つだけです。

$http.get('/link/to/file.php', {cache: true});

例:

(function() {
    'use strict';

    angular
            .module('yourModuleName')
            .controller('DashboardCtrl', DashboardCtrl);

    DashboardCtrl.$inject = ['$scope'];

    function DashboardCtrl($scope) {

       $scope.get = function () {
           $http.get('/link/to/file.php', {cache: true}).then(function(response) {
               // it will do GET request just once
               // later you will get the same response from cacheFactory
           })
       }
    }

}());
于 2015-12-17T08:58:58.490 に答える
0

ボタンのクリックで別の http リクエストを呼び出すときに、最初の http リクエストをキャンセルする関数を作成できます。これは、同様の問題で私を助けた $q.defer() 関数を使用するリファレンスです: http://odetocode.com/blogs/scott/archive/2014/04/24/canceling-http-requests-in-angularjs .aspx

于 2015-12-17T09:05:37.900 に答える