質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SPA(Single-page Application)

SPA(Single-page Application)は、単一のWebページのみでコンテンツの切り替えができるWebアプリケーションもしくはWebサイトです。ブラウザでのページ遷移がないため、デスクトップアプリケーションのようなUXを提供します。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

Q&A

2回答

1133閲覧

SPAにおけるアプリ更新方法について

tama2015

総合スコア63

SPA(Single-page Application)

SPA(Single-page Application)は、単一のWebページのみでコンテンツの切り替えができるWebアプリケーションもしくはWebサイトです。ブラウザでのページ遷移がないため、デスクトップアプリケーションのようなUXを提供します。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

0グッド

1クリップ

投稿2018/10/15 02:47

SPAにおけるアプリ更新方法について

AngularJSSPAアプリを作成しています。jsは一纏まりにしてapp.min.js?12541874のような形にまとめて最初に読み込まれるindex.htmlファイルに<script>タグから読みこんでいます。?の後の数字はapp.min.jsが更新される度に変更されるようになっています。

アプリに更新があった場合にapp.min.jsをユーザーに再度読み込ませるにはどのようにすればよいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keisukeh

2018/10/15 04:35

今の状態で実現出来ていると思うのですが。
tama2015

2018/10/15 05:40 編集

初回アクセス時にindex.htmlにアクセスした後からはapiから情報取得して画面更新します。ユーザーは古いapp.min.jsを使い続けますのでどうやってapp.min.jsを更新するのが適切なのかが知りたいです。
guest

回答2

0

僕もこの点苦労しました。

結論としては、pollingを使いました。

  • サーバー側に最新バージョンの数値を保持し、「現在のバージョンが最新かどうか」を判定するAPIを実装
  • フロント側からは1h毎にタイマーで上記APIを叩く。結果、古いバージョンとなっていた場合はハードリフレッシュを行う

ということをしました。
実際には、ユーザー入力中にハードリフレッシュを行わないように、windowがactiveじゃなくなったタイミングを検知してハードリフレッシュする、というところまでやっています。

もう少し、シンプルな実装ができればとおもっていたのですが、このソリューションしか見つけられなかったです。

投稿2018/10/15 08:53

h_daido

総合スコア824

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

なるほど。更新した際にユーザーがページを開いてる場合ですね。
自分の場合ですが、service workerを使用してアプリの更新情報を取得して
新しいバージョンがある場合、
「新しいバージョンがあります。リロードしますよ~」みたいなダイアログを出します。
service workerで無くてもDBでバージョン管理して定期的に取得して更新を確認してもいいと思います。

【追記】
大規模なアプリの場合アップデートのタイミングで強制的にメンテナンス画面に飛ぶような仕組みを用意しておいたほうがいいかもしれません。

投稿2018/10/16 00:10

編集2018/10/16 00:12
keisukeh

総合スコア657

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問