問題タブ [service-worker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
7219 参照

javascript - Service Worker: サーバー上でファイルが変更されたときにキャッシュを更新する方法は?

どのようなキャッシュ戦略を使用していますか? Offline Cookbook を読みましたが、使用する最も簡単な戦略は、静的コンテンツをキャッシュし、API 呼び出しを除外することです。

この戦略は次のようになります。

  1. リクエストがすでにキャッシュにあるかどうかを確認する
  2. リクエストとレスポンスのペアをキャッシュに追加しない場合
  3. 応答を返す

サーバー側のファイルが変更された場合、キャッシュを更新する方法は? 現在、クライアントは常にキャッシュされた結果を取得します。

これが私のキャッシュ戦略のコードです:

0 投票する
4 に答える
8367 参照

html - 完全にhttpsサイトなしでhtml5でプッシュ通知は可能ですか?

プッシュ通知がついにWebアプリで使えるようになりました!残念ながら、これには ServiceWorker の https が必要ですが、すべてのサイトにあるとは限りません。

それが言及している仕様で気づいたことの1つは:

if r's url's scheme is not one of "http" and "https", then: Throw a TypeError."

だから私は混乱しています-httpsからのサービスワーカーが含まれている限り、サイトはhttpにすることができますか? たとえば、 mydomain.com にhttps://anotherdomain.comからの https サービスワーカーを含めることができますか?

もう 1 つの標準である web-api simple-pushは、https の要求について言及しておらず (ドキュメントでは省略されている可能性があります)、「Firefox デスクトップでのユーザー エクスペリエンスはまだ引き出されていません」。これに関するドキュメントは古くなっていますか、それともプッシュは本当に FirefoxOS でしかサポートされていませんか??

0 投票する
1 に答える
853 参照

javascript - マルチサイト環境で Service Worker API を使用する

そのため、通知やオフライン キャッシングなどのすべての新しい機能が Service Worker API で利用できるようになったため、Web アプリに追加することを検討していました。

唯一のことは、https/ssl の問題に対処する方法がわかりません。

私のサイトでは、オンラインのノーコード環境で Web サイトをホストできます。新しいサイトは、メイン ドメインのサブドメインからアクセスされます。これだけでは、ワイルドカード サブドメインの ssl 証明書が必要であることがわかります。

私が直面している問題は、プレミアム サイトが独自のトップ レベル ドメインを追加できることです。私が知る限り、これはService Workerを壊します。

これらのサイトはすべて、ユーザーが一度サインアップするだけでよいため、ユーザーはサイト間で共有され、サイト間で通知やメッセージを受け取ることもできます。

モバイル用 API の通知部分を利用したいのですが、まずこの問題を回避する必要があります。

これに関するヘルプや啓発は大歓迎です:)。

0 投票する
2 に答える
670 参照

caching - ServiceWorker: ファイルが実際にキャッシュされるのはいつですか?

ServiceWorker を使用して一部のアセットをキャッシュしています。すべてのファイルが正常にキャッシュされたらユーザーに知らせたいので、オフラインでコンテンツにアクセスできることをユーザーに認識させます。これを行う適切なタイミングはいつですか?

私はconsole.log()物事の流れを理解するためにいくつか持っています。ServiceWorker を登録する瞬間は次のとおりです。

ServiceWorker 内では次のようになります。

コンソールには次のように表示されます。

したがって、この通知をトリガーする正しい瞬間は の後.addAll()であると考えているので、現在「ファイルがキャッシュされました!」と吐き出していますか? で実行すると便利ですがregister()、3 番目と最後のログ メッセージの間に遅延があるようです。その場合、ServiceWorker の内部にいるため、postMessage()この情報をクライアントに送信するのが最善の方法でしょうか?

ありがとう!

0 投票する
1 に答える
1498 参照

javascript - Web/デスクトップ通知 API - ページの更新時にすべての通知を強制的に閉じる

私は Web Notification API または Desktop Notification API を見てきました。それがどのように構築されているか、またそれがサポートする属性とイベントの数を理解しています。通知はブラウザから分離されているため、たとえばブラウザが最小化されていても通知を表示できます。

私の質問は、通知を Web ページ上のアクションにリンクする方法はありますか? 特に、ページを更新するときにすべての通知ダイアログを閉じたいです。どうすればそれを実現できますか?

前もって感謝します。

0 投票する
2 に答える
2177 参照

html - HTML5 プッシュ通知 - 他のプッシュ方法の例

Google IO 2015 では、Chrome with HTML5 と Service Worker のプッシュ通知について多くの話題がありました。

まだ初期の頃であり、例は地面に薄いです。Google Cloud Messaging 以外のプラットフォーム (Azure Mobile Services、AWS など) からプッシュを実装する方法のサーバー側の例を探しています。

0 投票する
1 に答える
1800 参照

javascript - リダイレクトされたスクリプト URL に Service Worker を登録する方法

これは「やってはいけないこと」の範疇に入るかもしれませんが、Web アクセス可能な Service Worker スクリプト (「sw.js」) をユーザーのページに効果的に挿入し、登録する chrome 拡張機能を開発しようとしています。 Service Worker をそのスクリプトに追加します。

今、私は以下を持っています: Manifest.json:

background.js

initPage.js:

うまくいけば、これから私が達成しようとしていることがわかります。sw.js基本的に、拡張機能の web-accessible-scripts でホストされている Service Worker を に登録しようとしています。私がこれを行うことができると信じている方法は、リクエストをインターセプトし、switchme.jsreturn にリダイレクトすることsw.jsです。

このアプローチの唯一の問題は、これを試みると Chrome ブラウザーがクラッシュすることです。スタックをextensions::sendRequest次の行までトレースしました。

デバッグのアイデアや、これが機能する可能性があると私が夢中になっている理由についての適切な説明を添えて、頭をひっくり返していただければ幸いです。