Angularjs アプリはこちら。同様のことを行う 2 つのコントローラーがあります。特に、間隔があります。10 秒ごとに、自分のサービスに移動します。
これら 2 つの異なるサービスも同様のことを行います。最も重要なことは、次のような URL にアクセスすることです。
example.com/fromTimestamp=2019-11-21T15:13:51.618Z
2 つのコントローラーがほぼ同時に開始されるため、上記の例では、次のようなものを生成できます。
controller/service 1: example.com/fromTimestamp=2019-11-21T15:13:51.618Z
controller/service 2: example.com/fromTimestamp=2019-11-21T15:13:52.898Z
これは、パラメーターが次の行でサービスに作成されるためです。
var timestamp = fromTimestamp ? '&fromTimestamp=' +fromTimestamp.toISOString() : '';
そのため、数秒の違いがあるかもしれません。またはミリ秒の違いだけです。
リクエストを 1 つだけ作成し、http から取得したデータを 2 つのサービス間で共有したいと考えています。最も自然なアプローチは、キャッシュを使用することです。私が理解できるのは、この呼び出しがうまくいく可能性があるということです:
return $http.get('example.com/fromTimestamp=2019-11-21T15:13:51.618Z', {cache: true});
しかし、開発ツールを見ると、サーバーに対してまだ 2 つのリクエストが行われています。これは、2つの異なるURLがあるためだと思いますか? それが問題である場合、この問題に対する別のアプローチは何ですか?