iOSのsafariが真っ白になって何も表示しなくなる

古いReactアプリの改修中に iPadのSafariで突然何も表示されなくなるという現象に遭遇しました。 safari_blank

しかし、Android端末、macOS上のChrome/Firefoxでは問題なくページが表示されます。

macOSのSafariでためしたところ、同様の現象が起きました。 開発コンソールをみると QuotaExceededError: The quota has been exceeded. と出ています。 safari_error

これはlocalStorageの容量を超えて書き込もうとしたときに出るエラーのようです。

色々調べていくと、この古いReactアプリではサーバーから取得したデータをlocalStorageに一旦保存するという挙動になっており、大量のデータを受信するとlocalStorageの上限を超えて書き込もうとし、Safariが動かなくなっていました。

サーバーから取ってきたデータをlocalStorageにいれるという挙動がそもそも謎ですが、なぜそういう仕様になっているかもわからないので、一旦取得データを減らすことで回避しました。

Module not found: Error: Can't resolve 'react/jsx-runtime' エラー
仮想化ライブラリ virtua の紹介