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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

PWA(Progressive Web Apps)

PWA(Progressive Web Apps)は、アプリのようなWebサイトを指します。仕様が異なる様々なデバイスで表示でき、インストールも不要。さらに訪問し続けることでユーザーについて学び、強力なPWAとなります。

Q&A

1回答

1418閲覧

PWAのWebアプリをいつでも最新の状態にしたいです

Khy

総合スコア118

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

PWA(Progressive Web Apps)

PWA(Progressive Web Apps)は、アプリのようなWebサイトを指します。仕様が異なる様々なデバイスで表示でき、インストールも不要。さらに訪問し続けることでユーザーについて学び、強力なPWAとなります。

0グッド

2クリップ

投稿2019/06/11 09:43

Vue.jsで作成したPWAのWebアプリがあるのですが、キャッシュのせいで更新が効きません。
そこでボタンを押すと手動で更新できるようにしたいと思い以下のサイトを参考にコードを書いてみたのですが、service workerをあまり理解できていないため上手くいきませんでした。

https://blog.htmlhifive.com/2018/08/27/pwa-cache-update/

ボタンで実装しなくても良いのでユーザーがPWAのアプリを簡単に最新の状態で使用できるようにしたいです。どのようにしたら良いでしょうか..?

/* registerServiceWorker.js */ import { register } from 'register-service-worker' if (process.env.NODE_ENV === 'production') { register(`${process.env.BASE_URL}service-worker.js`, { ready () { console.log( 'App is being served from cache by a service worker.\n' + 'For more details, visit https://goo.gl/AFskqB' ) }, registered () { console.log('Service worker has been registered.') if ('serviceWorker' in navigator) { navigator.serviceWorker .register('/serviceworker.js') .then(registration => { // 登録成功 registration.onupdatefound = function() { console.log('アップデートがあります!'); registration.update(); } }) .catch(err => { // 登録失敗 console.log(err); }); } }, cached () { console.log('Content has been cached for offline use.') }, updatefound () { console.log('New content is downloading.') }, updated () { console.log('New content is available; please refresh.') }, offline () { console.log('No internet connection found. App is running in offline mode.') }, error (error) { console.error('Error during service worker registration:', error) } }) }
/* setting.vue */ <template> <v-btn @click="appUpdate"> アプリを最新の状態にアップデート </v-btn> </template> <script> export default { appUpdate(){ navigator.serviceWorker.getRegistration() .then(registration => { registration.unregister(); }) const channel = new MessageChannel(); navigator.serviceWorker.controller .postMessage('update', [channel.port2]); var urlsToCache = [ '/', '/bower_components/jquery/dist/jquery.min.js', '/bower_components/hifive/h5.js', '/bower_components/hifive/h5.css', '/bower_components/hifive/ejs-h5mod.js', '/ncmb.min.js', '/app.js' ]; self.addEventListener('install', function(event) { return install(event); }); self.addEventListener('message', function(event) { return install(event); }); var CACHE_NAME = 'my-site-cache-v1'; const install = (event) => { return event.waitUntil( caches.open(CACHE_NAME) .then(function(cache) { urlsToCache.map(url => { return fetch(new Request(url)).then(response => { return cache.put(url, response); }); }) }) .catch(function(err) { console.log(err); }) ); } } }, } </script>

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

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

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

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

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

guest

回答1

0

アプリケーションを更新する際に、precacheの名前も変更してあげるとうまくいくと思います。

var CACHE_NAME = 'my-site-cache-v1';

var CACHE_NAME = 'my-site-cache-v2';

こうするとService Workerが更新された際に別名のキャッシュを作ります。

投稿2019/06/16 06:10

gyarasu

総合スコア148

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問