1. ホーム
  2. javascript

Single Page Application(SPA)ページを強制的に更新する方法は?

2023-07-20 11:31:07

質問

完全なサーバーサイドベースのレンダリング (非 Web 2.0) では、サーバーサイドのコードをデプロイすると、ページの再読み込み時にクライアントサイドのページが直接更新されます。これに対して、React ベースの Single Page Application では、React コンポーネントが更新された後でも、古いバージョンのコンポーネントを使用しているクライアントがあります (彼らはブラウザの再読み込み時にのみ新しいバージョンを取得します。これはほとんど発生しないはずです)。

古いバージョンのコンポーネントがどのクライアントによってももう使用されないことを確認するために、どのようなテクニックを採用すべきでしょうか?

更新:APIは変更せず、React Componentのみを新しいバージョンに更新します。

解決方法は?

アプリケーションのロード時に、Reactコンポーネントがサーバーにajaxリクエストを行い、以下のものを取得することができます。 "インターフェイスのバージョン"。 . サーバーAPIでは、クライアントバージョンの増分値を維持することができます。Reactコンポーネントは、この値をクライアントに保存できます(クッキー/ローカルストレージ/その他)。変更を検出した場合、それは window.location.reload(true); を呼び出すことができます。 ブラウザがクライアントキャッシュを破棄するよう強制する を実行し、SPA を再読み込みします。または、より良い方法は、新しいバージョンがロードされることをエンドユーザーに通知し、作業を保存してから再ロードすることを望むかどうかを尋ねるなどです。あなたが何をしたいかによります。