$Http GET リクエストに対して {cache:true{ を取得しました。これが有効になっていても、データが非同期で返されることは知っていますが、それでも応答時間が驚くほど長いことがわかります。
これが正常なのか、それともより明確にするために、最初のリクエストの応答時間が同じ(ただし次の)リクエストの応答時間よりも長いと予想されるべきではないことを知りたいですか?
例えば、
両方の $http GET リクエストでキャッシュが有効になっています。
/foo/api/yellow
これは、promise が解決された後、3 秒かかるデータを返します。キャッシュを有効にしたので、これは Angularjs によってキャッシュされると思います。
しばらくすると、新しいリクエストが作成されます。
/foo/api/yellow
これにより一部のデータが返されますが、これは最初のリクエストでキャッシュされたと思われますが、応答時間は 3 秒以上です。私が言ったように、キャッシュが真であっても、データは非同期に返されますが、応答時間は正常ですか、それとも何か問題がありますか?
これが正常な場合、新しいサービスを作成して、キャッシュされたデータをすべて保存し、データが存在するかどうかを確認して同期的に取得するのが最善の方法だと思います。
最初のリクエストでは、現在のコードは次のようになります。
$http.get(MySettings.apiUrl + '/foo/api/yellow', { cache: true });
2 番目の要求は同じです。
コンソール ログを添付することにしました。
GET http://foo/api/get_tag_index/
200 OK
419ms
angula....min.js (line 106)
GET http://foo/api/get_category_posts/?slug=issues-covers
200 OK
915ms
angula....min.js (line 106)
GET http://foo/api/get_category_posts/?slug=issues-covers
200 OK
1s
angula....min.js (line 106)
200 OK
4.43s
angula....min.js (line 106)
GET http://foo/api/get_category_posts/?slug=cards
200 OK
8.93s
angula....min.js (line 106)
GET http://foo/api/get_tag_posts/?slug=issue-01
200 OK
4.51s
angula....min.js (line 106)
GET http://foo/api/get_category_posts/?slug=news
200 OK
4.51s
angula....min.js (line 106)
GET http://foo/api/get_category_posts/?slug=cards
200 OK
3.86s
angula....min.js (line 106)
ご覧いただきありがとうございます。