SlideShare a Scribd company logo
ServiceWorker が拓く
Mobile Web の新しいかたち
HTML5とか勉強会 02/25/2015
Kinuko Yasuda (@kinu)
kinuko@chromium.org
HTML5とか勉強会 02/25/2015
Kinuko Yasuda (@kinu)
kinuko@chromium.org
ServiceWorker が拓く
Mobile Web の新しいかたち
自己紹介:
Kinuko Yasuda
@kinu / kinuko@chromium.org
Chrome エンジニア 5年目くらい
■ ストレージ、ネットワーク、Worker系など裏方っぽい API
をよくいじっています
■ File/Blob, FileSystem, Quota, XHR, Web Workers,
ServiceWorker などなど
■ 2013年秋頃からは主に ServiceWorker
今日話す内容
ServiceWorker が “拓く”
Mobile Web の “新しいかたち”
■ なぜ ServiceWorker は Exciting なの?
■ つまり ServiceWorker とは何なの?
■ どうやって使うの?
■ セキュリティはどうなってるの?
■ いつから試してみるべき?
Disclaimer: ここで話す内容は私の個人的な意見に基づくもので
あり、私の雇用者とは関係ありません
なぜ ServiceWorker が
Exciting なのか?
Web is Awesome!!
オープン仕様
リンクによる導線
常に最新のコンテンツ
インストール不要
Mashupの容易さ
プラットフォーム中立
…ただしネットワークに接続していれば。
■ Speed - ロード時間
■ Offline - オフライン時の UX
■ Re-engagement - Push通知などのユー
ザ再訪を促す方法がない
…そしてあらゆる場所に “Install App” のポップアップ
Mobile 時代の Web の ”弱み”
Speed - ロード時間
@igrigorik
Delay User reaction
0 - 100 ms Instant
100 - 300 ms Slight perceptible delay
300 - 1000 ms
Task focus, perceptible
delay
1 s+ Mental context switch
10 s+ I'll come back later...
ユーザが待てる
のは1秒まで、
しかし…
Offline - オフライン時のUX
■ “When connectivity is gone,
UX is gone.”
■ AppCache?
■ 宣言的な記述
■ 細かい制御不可
■ ブラウザ実装次第
■ 凝ったことをしようと
するとはまる
Re-engagement - Push通知の欠如
■ ユーザが Tab を閉じたら終わり
■ 再訪を促す手段がない
■ Speed - ロード時間
■ Offline - オフライン時の UX
■ Re-engagement - Push通知などのユー
ザ再訪を促す方法がない
→ どれも Web の動作モデル
  から来るもの
Web の強み ≒ Mobile Web の ”弱み”
Webの動作モデル自体を拡張できるよう
にする?
できればブラウザの実装スピードに
とらわれない形で。
→ ServiceWorker
ServiceWorkerとは
何なのか?
ServiceWorkerとは?
“AppCacheを置き換える
新しいオフラインAPI”
“ブラウザ内で動作する
JavaScriptネットワークプロキシ”
“ネイティブ・アプリと Web の
間のギャップを埋める”
改めて、ServiceWorkerとは
■ バックグラウンドで動作するJavaScript
実行環境
■ DOMにはさわれない
■ ユーザインタラクションもできない
じゃあこのJavaScript環境で
何ができるの?
→ ブラウザが内部でやっていたような
   ことを JS でいじれるようになる
改めて、ServiceWorkerとは
■ バックグラウンドで動作するJavaScript
実行環境
■ DOMにはさわれない
■ ユーザインタラクションもできない
■ フォアグラウンドのWebページと
対になって動作
■ ページのネットワークリクエストを横取りできる
■ ページを開いたりメッセージ通信したりできる
■ Push通知を受け取れる
■ Fetch, Cache などの低レイヤAPIが使える (*)
(*) Fetch, Cache は普通のページからも使えるようになることが予定されています
Webのイメージ, Before ServiceWorker
Cache
♪
Webのイメージ, Before ServiceWorker
Cache
“Network connectivity is a single point of failure
when it comes to user-experience on the web.”
ー Jake Archibald, 2014
Webのイメージ, After ServiceWorker
Cache
Service
Worker
Webページ(のセット)に対してブラウザ内に登録・インス
トールされ、バックグラウンドで動作
● インストールされた ServiceWorker はページからの
HTTPリクエストを横取りできる
♪
Webのイメージ, After ServiceWorker
Cache
Service
Worker
一度インストールされた ServiceWorker はオフラインでも動
作する
● オフライン時やネットワークが遅い・不安定な場合の挙動
をきめ細かくスクリプトで制御できる
♪
Webのイメージ, After ServiceWorker
Cache
Cache
API
♪
HTTPリクエストをキー、HTTPレスポンスを値としてスト
アするオフラインストレージ
● HTTPリクエストをしゃべれる
● CORSレスポンスを扱える
● アトミックに複数エントリを更新できる
Webのイメージ, After ServiceWorker
Cache
Fetch
API
HTTPリクエストを発行してレスポンスを “Fetch” する
● CORSモード, Cache, Credentialsなどの細かい制御が可能
● XHRのより低レイヤな置き換え、あるいはブラウザが実際に
やっている “fetch” の挙動の再定義とも言える
Worker としての ServiceWorker
■ SharedWorker と似ている
■ 複数 Web ページに紐付けられる
■ postMessage で Web ページと通信できる
■ SharedWorker と異なる点
■ ‘register’ API によってブラウザに登録される
■ 登録はページを閉じても保持される
■ 対応する Web ページを ‘コントロール’ する
オフラインAPIとしての ServiceWorker
■ AppCache と違い、オフラインキャッシュに
特化されたAPIではない
■ AppCache のようなオフライン機能を
作ることもできる低レイヤAPI群
■ 便利な高レイヤ API はその上に構築できればよい
■ ブラウザは必要なプリミティブを用意するので
あとはWeb開発者のみなさんがよろしくやってね
■ Extensible Web
ServiceWorker を
使ってみる
ServiceWorker を登録・インストールする
function register() {
// ‘sw.js’ スクリプトを ‘hello/’ 以下の
// URL に対して動作するよう登録する
navigator.serviceWorker.register(
'sw.js', {scope: 'hello/'})
.then(function(r) {
console.log('登録成功: ', r);
})
.catch(function(err) {
console.error('エラー... ', err);
});
}
self.oninstall = function(ev) {
// インストール時に呼ばれる
// イベント。必要ならここで
// キャッシュの初期化や更新を行う
...
}
sw.js
ServiceWorker のライフサイクル
install
イベント
activate
イベント
fetch
イベント
ServiceWorker のイベント
■ install
■ ServiceWorker が登録されるときに呼ばれる
■ 例:キャッシュデータの初期化など
■ activate
■ 新しい ServiceWorker がページをコントロール
しはじめるときに呼ばれる
■ 例:古いキャッシュデータを消すなど
■ fetch
■ ページがHTTPリクエストを発行したときに
呼ばれる (ページ遷移もしくはロード)
■ 例:キャッシュデータを代わりに返すなど
登録された ServiceWorker を確認する
chrome://serviceworker-internals
DevTools
を開く
登録を
消す
SWの
コンソールロ
グ
Fetchハンドラによるリクエスト横取り
self.onfetch = function(event) {
// a.html のデータをその場で作って返す
if (event.request.url.indexOf('a.html') != -1) {
event.respondWith(new Response('<h1>Hi!</h1>'));
}
}
Hi!
hello/a.html
Shift-Reload で強制的に読み込んだ場合
は ServiceWorker をバイパスします
Cache API を使う
Cache
// 未実装のメソッドがあるのでポリフィルが必要
// https://github.com/coonsta/cache-polyfill
importScripts(‘cache-polyfill.js’);
self.oninstall = function(ev) {
ev.waitUntil(
caches.open(‘v1’).then(function(cache) {
return cache.add(‘/cat.png’);
})); };
self.onfetch = function(ev) {
if (ev.request.url.indexOf(‘png’) != -1)
ev.respondWith(caches.match(‘/cat.png’));
};
scope 内のページ内の
画像をすべてネコの画像
に置き換える
Cache の中身を確認する (M41から)
② DevTools
を開く
① serviceworker-
internals へ
③ Resources
タブ
④ Service
Worker Cache
キャッシュはオリジン毎に
管理されます。
Cache と Fetch API を組み合わせる
Cache
importScripts(‘cache-polyfill.js’);
self.oninstall = function(ev) {
ev.waitUntil(
caches.open(‘v2’).then(function(cache) {
return cache.addAll([‘/’, ‘/cat.png’, ...]);
})); };
self.onactivate = function(ev) {
ev.waitUntil(caches.delete(‘v1’));
};
self.onfetch = function(ev) {
ev.respondWith(
caches.match(ev.request).then(function(res) {
return res || fetch(ev.request);
}); };
‘/’以下をキャッシュして
おき、キャッシュにない
データへのリクエストが
来たらfetch
Fetch と Cache の組み合わせ例
■ キャッシュの中身をまず表示して後からネット
ワークから取ってきた内容で更新
■ ストレスの少ないブラウジング
■ 普通のアプリのような挙動
■ Background Sync と組み合わせればオンラインのときにキャッ
シュを更新できるように
■ テンプレートをキャッシュしておいて内容だけ
ネットワークから取得
■ ロード時間の短縮
ネットワーク状況にかかわらずきめ細かいUXの
設計ができるようになる
Fetch API が返す Response
■ basic filtered
■ 同一オリジンでリダイレクトでもない
■ Set-Cookie, Set-Cookie2 だけがフィルタされる
■ cors filtered
■ リクエストが cors もしくは cors-with-preflight で同一
オリジンではない
■ Cache-Control, Content-Type など一部を除きすべ
てのヘッダがフィルタされる
■ opaque filtered
■ リクエストが no-cors で同一オリジンではない
■ すべてのヘッダ, status, body がフィルタされる
ServiceWorker の更新
■ コントロールされているページをロードすると
ブラウザが自動でチェック
■ Cache-control には従うので注意 (ただし24時間以上たってい
たら必ず見に行く)
■ コントロールされてるページがある限り新しいものには置き換え
ない (Reload - Shift+Reload - Reload が有効)
self.oninstall = function(ev) {
ev.waitUntil(
caches.open(‘v2’).then(function(cache) {
return cache.addAll([‘...]);
}));
};
self.onactivate = function(ev) {
ev.waitUntil(caches.delete(‘v1’));
};
キャッシュの中身も
忘れずに更新する
ServiceWorker の更新 - はまりどころ
■ コントロールされているページをほかに開いて
ると更新されない
■ スクリプトエラーがあると更新されない
■ “Opens the DevTools window for ServiceWorker
on start for debugging” でデバッグできる
■ chrome://serviceworker-internals/ は友だち
■ どうしてもはまったらとりあえず登録を全部消
してやりなおす…
■ https://kinu.github.
io/ServiceWorkerOfflineBasic
■ https://events.google.com/io2015/
■ https://horo-t.github.
io/tiff2bmpsw/tiff2bmpsw.html
デモ的なもの
Push API (M42 から)
■ デモ: johnme-gcm.appspot.
com/chat
ServiceWorker
セキュリティはどうなの?
ServiceWorker のセキュリティ (1)
■ Secure origin のみ
■ http://example.com では動かない
■ https://example.com, http://localhost のみ
■ 同一オリジンルールに従う
■ https://example.com の ServiceWorker は
https://example.com/ のみをコントロール
ServiceWorker のセキュリティ (2)
■ コントロールできるのはスクリプトの置か
れているパス以下のみ
■ https://example.com/foo/sw.js は
https://example.com/bar/ をコントロールできない
■ ただし、Service-Worker-Allowed: ヘッダ
でサーバ側で変更できる (M42から)
■ Service-Worker-Allowed: ‘/allowed-
path’
ServiceWorker のセキュリティ (3)
■ ServiceWorker スクリプトは javascript
MIME type でサーブされる必要がある
■ text/plain などでサーブされてるスクリプトは
ServiceWorker として登録できない
■ ServiceWorker のリクエストには Service-
Worker: script ヘッダがつく
■ サイト側で簡単に disable できる
■ 最初は whitelist されたものだけ許可するのオススメ
ServiceWorker
いつから試すべきか?
新しい API だし、
いつから試すべき…?
今です
ServiceWorker を今すぐ試すべき理由
既存サイトに Opt-in で対応可能
■ ロード時間の短縮
■ オフラインへの対応
■ Push通知対応
■ …
SW対応ブラウザ → UXの向上
SW非対応ブラウザ → そのまま
ServiceWorker を今すぐ試すべき理由
既存サイトに Opt-in で対応可能
■ ロード時間の短縮
■ オフラインへの対応
■ Push通知対応
■ …
ネイティブ・アプリでいい?
■ いいものもある、もちろん
■ インストールするメリットがあるサイトですか?
■ 誰に、いつまで “Install App” 出し続けますか?
ServiceWorker を今すぐ試すべき理由
既存サイトに Opt-in で対応可能
■ ロード時間の短縮
■ オフラインへの対応
■ Push通知対応
■ …
むしろ ServiceWorker 化
しない理由がない!
ブラウザの対応状況
Chrome で今すぐ使えます!
http://bit.ly/use-sw-today
ブラウザの対応状況
Firefox でも試せます!
http://bit.ly/ff-sw-builds
ブラウザの対応状況
Internet Explorer にも実装してもらおう!
http://bit.ly/vote-ie-sw
What’s coming next?
今後の予定
■ M41: (もうじき)
■ Cache API in DevTools, more methods
■ M42: (4月半ば)
■ Push API, Service-Worker-Allowed:,
Fetch API in global scope
■ Firefox: 3月末に Nightly を目標
参考になるページなど
■ Chrome 40 で今すぐServiceWorker を試す
■ HTML5Rocks: ServiceWorkerの紹介
■ Google I/O 2014 - ServiceWorker でネイティ
ブアプリとの差を縮めよう
■ Jake Archibald’s blog: The offline cookbook

More Related Content

What's hot

Lambda layerをDeployする方法を調べる
Lambda layerをDeployする方法を調べるLambda layerをDeployする方法を調べる
Lambda layerをDeployする方法を調べる
shotaueda3
 
Go1.18 Genericsを試す
Go1.18 Genericsを試すGo1.18 Genericsを試す
Go1.18 Genericsを試す
asuka y
 
KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론
Hyunjik Bae
 
Packet Capture on AWS
Packet Capture on AWSPacket Capture on AWS
Packet Capture on AWS
Teri Radichel
 
【Visual Studio】開発効率を上げる25個の拡張機能
【Visual Studio】開発効率を上げる25個の拡張機能【Visual Studio】開発効率を上げる25個の拡張機能
【Visual Studio】開発効率を上げる25個の拡張機能
Shota Baba
 
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
Chanwoong Kim
 
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめTDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
Kei Sawada
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
 
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
Hiroshi Tokumaru
 
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?Nts Nuli
 
AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法
Amazon Web Services Japan
 
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMPRTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
Masashi Shibata
 
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Masashi Shibata
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
do_aki
 
JQuery selectors
JQuery selectors JQuery selectors
JQuery selectors
chandrashekher786
 
おひとりさまAWS Organizationsのススメ
おひとりさまAWS OrganizationsのススメおひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
Makio Tsukamoto
 
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
Y Watanabe
 
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
 

What's hot (20)

Lambda layerをDeployする方法を調べる
Lambda layerをDeployする方法を調べるLambda layerをDeployする方法を調べる
Lambda layerをDeployする方法を調べる
 
Go1.18 Genericsを試す
Go1.18 Genericsを試すGo1.18 Genericsを試す
Go1.18 Genericsを試す
 
KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론
 
Packet Capture on AWS
Packet Capture on AWSPacket Capture on AWS
Packet Capture on AWS
 
【Visual Studio】開発効率を上げる25個の拡張機能
【Visual Studio】開発効率を上げる25個の拡張機能【Visual Studio】開発効率を上げる25個の拡張機能
【Visual Studio】開発効率を上げる25個の拡張機能
 
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめTDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
 
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
 
AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法
 
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMPRTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
 
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
Javascript by geetanjali
Javascript by geetanjaliJavascript by geetanjali
Javascript by geetanjali
 
JQuery selectors
JQuery selectors JQuery selectors
JQuery selectors
 
おひとりさまAWS Organizationsのススメ
おひとりさまAWS OrganizationsのススメおひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
 
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
 
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
 

Similar to Service worker が拓く mobile web の新しいかたち

PWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 SpringPWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 Spring
Ryu Shindo
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューション
Hiromasa Oka
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
zaru sakuraba
 
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
toshi_pp
 
Clrh 20121215
Clrh 20121215Clrh 20121215
Clrh 20121215
Tomoyuki Obi
 
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
Amazon Web Services Japan
 
vSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについてvSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについて
富士通クラウドテクノロジーズ株式会社
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
miso- soup3
 
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscalaビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
takezoe
 
Eight meets AWS
Eight meets AWSEight meets AWS
Eight meets AWS
Tetsuya Mase
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介Shotaro Suzuki
 
iOS WKWebViewの魔改造 - iOSDC 2018
iOS WKWebViewの魔改造 - iOSDC 2018iOS WKWebViewの魔改造 - iOSDC 2018
iOS WKWebViewの魔改造 - iOSDC 2018
Shingo Fukuyama
 
Om Next ~React.jsを超えて
Om Next ~React.jsを超えてOm Next ~React.jsを超えて
Om Next ~React.jsを超えて
Kazuki Tsutsumi
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Kikunaga Taishi
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践Shumpei Shiraishi
 
Aws glacier
Aws glacierAws glacier
Aws glacier
Yukihiko SAWANOBORI
 

Similar to Service worker が拓く mobile web の新しいかたち (20)

20080524
2008052420080524
20080524
 
PWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 SpringPWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 Spring
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューション
 
20090328
2009032820090328
20090328
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
 
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
 
Clrh 20121215
Clrh 20121215Clrh 20121215
Clrh 20121215
 
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
 
20120609
2012060920120609
20120609
 
vSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについてvSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについて
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
 
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscalaビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
 
Eight meets AWS
Eight meets AWSEight meets AWS
Eight meets AWS
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
 
iOS WKWebViewの魔改造 - iOSDC 2018
iOS WKWebViewの魔改造 - iOSDC 2018iOS WKWebViewの魔改造 - iOSDC 2018
iOS WKWebViewの魔改造 - iOSDC 2018
 
Om Next ~React.jsを超えて
Om Next ~React.jsを超えてOm Next ~React.jsを超えて
Om Next ~React.jsを超えて
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践
 
Aws glacier
Aws glacierAws glacier
Aws glacier
 
HTML5&API総まくり
HTML5&API総まくりHTML5&API総まくり
HTML5&API総まくり
 

Recently uploaded

単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
CRI Japan, Inc.
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 

Recently uploaded (15)

単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 

Service worker が拓く mobile web の新しいかたち