2017-03-23 13 views
1

サイトがjquery/XMLhttpリクエストを使用しているときに、jQuery.activeを使用してアクティブなajaxコールをバックエンドで取得できました。しかし、サイトがAurexの呼び出しをAurexの呼び出しに使用している場合、バックエンドでアクティブな呼び出しを取得する方法はありますか?アクティブなaureliaフェッチajax呼び出しカウントの取得方法

答えて

1

私はfetchの呼び出しでラッパーを持っており、呼び出しごとに変数をインクリメントしてから.thenコードブロックで減らしています。それはうまくいくようです。

サンプルコード:

getData(url) { 
    // Http Fetch Client to retreive data (GET) 
    this.apiCalls += 1; 
    console.log("getData from API: " + url); 
    return this.httpClient.fetch(url, { 
    credentials: 'include' 
    }).then(response => { 
    this.apiCalls -= 1; 
    if (!response.ok) { 
     throw Error(response.statusText); 
    } 
    return response.json(); 
    }).catch(error => { 
    this.apiCalls -= 1; 
    console.log(error); 
    return null; 
    }); 
} 
+0

あなたはそれを共有していただけますか?実際、私はこれをaureliaサイトのセレンで使用しようとしています。しかし、私はバックエンドで処理されたフェッチ要求を取得することができません。サイトにjavascriptコードを注入して、しかしaureliaフェッチajaxカウントを取得することはできません。 – Ravi

+0

私はちょうど私の応答を更新した。したがって、直接fetchを呼び出すのではなく、すべてのページでこの 'getData()'ルーチンを呼び出して呼び出しを行い、応答をjsonに変換することで前処理を行います。あなたはいつも 'apiCalls'を調べて、いくつの呼び出しがアクティブであるかを調べることができます。同様のレイアウトの 'postData()'の並列ルーチンもあります。 – LStarky

+0

ありがとうスターキー。私の組織では、開発チームはラッパーを追加する準備ができていません。ページレベルでスクリプトを挿入したり、アクティブなフェッチ呼び出しやリクエストを見つけたりするのに役立つその他の回避策はありますか?XMLHTTPリクエストを使用してこのコードをサイトに挿入しました。 – Ravi

0

私はシングルトン/グローバルな価値を創造し、その後interceptorsでクライアントを構成することによって、これを行っています。そこにあなたのすべての要求/応答にフックすることができます。そこでシングルトンを修正し、シングルトンを必要なビューモデルにインポートします。 fetch-clientとhttpclientの両方がこれをサポートしています。

let client = new HttpClient(); 
client.configure(x => { 
    x.withInterceptor({ 
     request(message) { 
     singleton.activeConnections++; 
     return message; 
     }, 

     response(message) { 
     singleton.activeConnections--; 
     return message; 
     } 
    }); 
    }); 
関連する問題