YSNHatenaBlog

主にアプリやWebサービス開発について

Next.jsのgetServerSidePropsで遅くなったので対策を考えてみたが...

Cloud FunctionsでNext.jsを動かしてWebアプリを運用してみている。

クライアントサイドで非同期にパラメータ取得した方が画面遷移が早くて爽快だったのだけど、OGPとかやりたいときに困るので getServerSideProps を入れてみた。 その結果、これを入れたページへの画面遷移が極端に遅くなった。

調べてみたけど、画面遷移で来たか初期ロードかはこんな感じで判定できそう。

if ((context.req as functions.https.Request).originalUrl.endsWith('.json')) {
  return {}
}
// 重い処理
return { /* 処理結果 */ }

ただこの「重い処理」が画面遷移にかかる時間の大半を締めていればいいのだが、自分の場合、クライアントとCloud Functionsとの通信にかかる時間の方がほとんどだった。hostingの制限上、Cloud Functionsはus-centralだし...。

処理も複雑になるし、断念。

追記

getInitialProps を使えばいいのかもしれないけど、パスによる場合分けが必要そうなのと、自動最適化が効かなくなるみたいなのでん〜という感じ。