もしご存知の方がいらっしゃったら教えていただきたいです!
###【知りたいこと】
複数のリクエストを飛ばすと、2回目以降のリクエストの処理時間が短くなる理由が知りたい
###【経緯】
- Reactコンポーネント内で以下のような関数を定義した
- 処理時間を確認すると、画像の通り1回目だけ処理に時間がかかっていることがわかった
- Chromeの検証ツールのnetworkタブを開くと初回だけcontent downloadの時間が長い
- 2回目以降は、1回目に取得したデータをChromeかどこかにキャッシュしているためcontent downloadの時間が短いと推測される
- しかし、どういう仕組み(ReactなのかChromeなのかaxiosなのか)でキャッシュされているかわからないため、質問することにした
###【経緯の詳細】
- Reactコンポーネント内で以下のような関数を定義した
javascript
1const fetchJSON = async () => { 2 const apiClient = axios.create({ 3 baseURL: "https://jsonplaceholder.typicode.com", 4 }); 5 6 console.time("request 5000 1st"); 7 const result1 = await apiClient.get("/photos"); 8 console.log("length: ", result1.data.length); 9 console.timeEnd("request 5000 1st"); 10 11 console.time("request 5000 2nd"); 12 const result2 = await apiClient.get("/photos"); 13 console.log("length: ", result2.data.length); 14 console.timeEnd("request 5000 2nd"); 15 16 console.time("request 5000 3rd"); 17 const result3 = await apiClient.get("/photos"); 18 console.log("length: ", result3.data.length); 19 console.timeEnd("request 5000 3rd"); 20 21 console.time("request 5000 4th"); 22 const result4 = await apiClient.get("/photos"); 23 console.log("length: ", result4.data.length); 24 console.timeEnd("request 5000 4th"); 25 26 console.time("request 5000 5th"); 27 const result5 = await apiClient.get("/photos"); 28 console.log("length: ", result5.data.length); 29 console.timeEnd("request 5000 5th"); 30};
- 処理時間を確認すると、画像の通り1回目だけ処理に時間がかかっていることがわかった
- chromeの検証ツールのnetworkタブを開くと1回目だけcontent downloadの時間が長い
- 2回目以降は、1回目に取得したデータをchromeかどこかにキャッシュしているためcontent downloadの時間が短いと推測される
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/11 21:07 編集
2021/09/11 22:31