SlideShare a Scribd company logo
Web Workers & Parallel.js
(function() {
let me = {
name : 島川悠太 ,
twitter : @banana_umai ,
as : Server Side Engineer ,
belogns_to : 株式会社リブセンス
}
})();
Web Workers おさらい
メインページに並行してバッ
クグラウンドで走るワーカスク
リプトを生成させられるAPI
http://www.hcn.zaq.ne.jp/___/WEB/Workers-ja.html
メインページに並行してバッ
クグラウンドで走るワーカスク
リプトを生成させられるAPI
http://www.hcn.zaq.ne.jp/___/WEB/Workers-ja.html
直接DOMは操作できない
専用ワーカと共有ワーカ
専用ワーカと共有ワーカ
使いドコロはUIスレッド
を専有したくない重たい
処理の記述
<script>
var worker = new Worker("js/worker.js");
worker.onmessage = function(event) {
console.log(event.data);
};
worker.postMessage(msg);
</script>
self.onmessage = function(event) {
loadScripts( proc.js );
postMessage(procWithData(event.data));
}
<script>
var worker = new Worker("js/worker.js");
worker.onmessage = function(event) {
console.log(event.data);
};
worker.postMessage(msg);
</script>
self.onmessage = function(event) {
loadScripts( proc.js );
postMessage(procWithData(event.data));
}
<script>
var worker = new Worker("js/worker.js");
worker.onmessage = function(event) {
console.log(event.data);
};
worker.postMessage(msg);
</script>
self.onmessage = function(event) {
loadScripts( proc.js );
postMessage(procWithData(event.data));
}
<script>
var worker = new Worker("js/worker.js");
worker.onmessage = function(event) {
console.log(event.data);
};
worker.postMessage(msg);
</script>
self.onmessage = function(event) {
loadScripts( proc.js );
postMessage(procWithData(event.data));
}
<script>
var worker = new Worker("js/worker.js");
worker.onmessage = function(event) {
console.log(event.data);
};
worker.postMessage(msg);
</script>
self.onmessage = function(event) {
loadScripts( proc.js );
postMessage(procWithData(event.data));
}
<script>
var worker = new Worker("js/worker.js");
worker.onmessage = function(event) {
console.log(event.data);
};
worker.postMessage(msg);
</script>
self.onmessage = function(event) {
loadScripts( proc.js );
postMessage(procWithData(event.data));
}
<script>
var worker = new Worker("js/worker.js");
worker.onmessage = function(event) {
console.log(event.data);
};
worker.postMessage(msg);
</script>
self.onmessage = function(event) {
loadScripts( proc.js );
postMessage(procWithData(event.data));
}
<script>
var worker = new Worker("js/worker.js");
worker.onmessage = function(event) {
console.log(event.data);
};
worker.postMessage(msg);
</script>
self.onmessage = function(event) {
loadScripts( proc.js );
postMessage(procWithData(event.data));
}
<script>
var worker = new Worker("js/worker.js");
worker.onmessage = function(event) {
console.log(event.data);
};
worker.postMessage(msg);
</script>
self.onmessage = function(event) {
loadScripts( proc.js );
postMessage(procWithData(event.data));
}
Parallel.js
http://adambom.github.io/parallel.js/
ブラウザでも
サーバーサイドでも
使える
ブラウザでは内部的に
専用ワーカを使って
並列処理を実現
バックグラウンド処理を
書き下せる
<script src= js/parallel.js ></script>
<script>
var data = …;
var p = new Parallel(data);
p.spawn(function (data) {
// some proc with data running in background
…
return result;
}).then(function (result) {
// some proc with result
…
});
</script>
map/reduceができるよ
<script src= js/parallel.js ></script>
<script>
var data = [1, 2, 3, 4];
var p = new Parallel(data);
p.map(function (datum) {
return datum * 2;
}).reduce(function (mappedData) {
return mappedData[0] + mappedData[1];
}).then(function (reduced) {
console.log(mappedData); // 20
});
</script>

More Related Content

PPTX
Web Workers
kaboccha
 
PDF
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Yuki Minakawa
 
PDF
Progressive Framework Vue.js 2.0
Toshiro Shimizu
 
PDF
One night Vue.js
Masahiro Kyuden
 
PDF
WKWebViewとUIWebView
Yuki Hirai
 
PDF
High Performance Gulp
Keisuke Imura
 
PDF
The master plan of scaling a web application
Yusuke Wada
 
PDF
jQuery Performance Tips – jQueryにおける高速化 -
Hayato Mizuno
 
Web Workers
kaboccha
 
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Yuki Minakawa
 
Progressive Framework Vue.js 2.0
Toshiro Shimizu
 
One night Vue.js
Masahiro Kyuden
 
WKWebViewとUIWebView
Yuki Hirai
 
High Performance Gulp
Keisuke Imura
 
The master plan of scaling a web application
Yusuke Wada
 
jQuery Performance Tips – jQueryにおける高速化 -
Hayato Mizuno
 

What's hot (20)

PDF
Start React with Browserify
Muyuu Fujita
 
PDF
ピピピのPWA
Matsuo Obu
 
PDF
20130614 jaws ug山形-lt
Seiji Akatsuka
 
PDF
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
 
PDF
chat bot framework for Java8
masahitojp
 
PDF
200k/sec
Sugawara Genki
 
PDF
Enhancements with 3D Touch
Satoshi Ohki
 
PDF
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
Yusuke Murata
 
PDF
Using SockJS(Websocket) with Sencha Ext JS
Kazuhiro Kotsutsumi
 
PDF
asm.jsとWebAssemblyって実際なんなの?
Yosuke Onoue
 
PPTX
EC2起動終了を出退勤と連動させてみた
Naoto Teruya
 
PDF
densan2014-late01
Takenori Nakagawa
 
PPTX
まだDOM操作で消耗してるの?
IRI MO
 
PDF
Railsの開発環境作るぞ
Yoichi Toyota
 
KEY
おすすめ gem
chocoby
 
PDF
エコなWebサーバー
emasaka
 
PDF
ISUCONの話(夏期講習2014)
SATOSHI TAGOMORI
 
PPTX
勉強会0614 vagrant
Yu Ito
 
PDF
React入門-JSONを取得して表示する
regret raym
 
PDF
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
佐藤 俊太郎
 
Start React with Browserify
Muyuu Fujita
 
ピピピのPWA
Matsuo Obu
 
20130614 jaws ug山形-lt
Seiji Akatsuka
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
 
chat bot framework for Java8
masahitojp
 
200k/sec
Sugawara Genki
 
Enhancements with 3D Touch
Satoshi Ohki
 
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
Yusuke Murata
 
Using SockJS(Websocket) with Sencha Ext JS
Kazuhiro Kotsutsumi
 
asm.jsとWebAssemblyって実際なんなの?
Yosuke Onoue
 
EC2起動終了を出退勤と連動させてみた
Naoto Teruya
 
densan2014-late01
Takenori Nakagawa
 
まだDOM操作で消耗してるの?
IRI MO
 
Railsの開発環境作るぞ
Yoichi Toyota
 
おすすめ gem
chocoby
 
エコなWebサーバー
emasaka
 
ISUCONの話(夏期講習2014)
SATOSHI TAGOMORI
 
勉強会0614 vagrant
Yu Ito
 
React入門-JSONを取得して表示する
regret raym
 
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
佐藤 俊太郎
 
Ad

Viewers also liked (20)

PDF
Livesense tech night immutable-js at a glance
Yuta Shimakawa
 
PDF
Trait in scala
Yuta Shimakawa
 
PDF
FluxのDispatcherとAction周りのことでもやもやしていることを晒してみる
Yuta Shimakawa
 
PDF
PHPでもモダンでスケーラブルな開発を DevLOVE現場甲子園2013発表資料
Yuta Shimakawa
 
PDF
型についてあれこれ
Yuta Shimakawa
 
KEY
タスクボード始めました(仮)++ アジャイルサムライ他流試合
Yuta Shimakawa
 
PDF
Presentatie Internet Marketing FBAA 2011 Sept 14
WSI web excellence
 
PPTX
Framework Foundation Basicão
Carlos Eduardo Kadu
 
PPT
Review of work in progress October 2012 Part 1
Peter Missen
 
PDF
Chineese smuggling
grigor545
 
PPTX
Linguagem sql
Vitor Alves
 
PPTX
Heal from within
vickimartino
 
PPTX
Build Your Best Auction Catalog Ever
Perry Allison
 
ODP
Diasanpatrick's xavicid
xavi1090
 
PPT
Canción la fruta presentación
MARI LUZ M. M.
 
PDF
Udemy Market-Research Entrepreneurship by Udemology
Nicky Wong
 
DOC
kan resume
Kan Mani
 
PDF
2011.02.05 run’oプレゼン
大祐 伊東
 
PDF
Dinamikakelompokprajab3
acep bambang
 
KEY
Joomla upgrades
Peter Bui
 
Livesense tech night immutable-js at a glance
Yuta Shimakawa
 
Trait in scala
Yuta Shimakawa
 
FluxのDispatcherとAction周りのことでもやもやしていることを晒してみる
Yuta Shimakawa
 
PHPでもモダンでスケーラブルな開発を DevLOVE現場甲子園2013発表資料
Yuta Shimakawa
 
型についてあれこれ
Yuta Shimakawa
 
タスクボード始めました(仮)++ アジャイルサムライ他流試合
Yuta Shimakawa
 
Presentatie Internet Marketing FBAA 2011 Sept 14
WSI web excellence
 
Framework Foundation Basicão
Carlos Eduardo Kadu
 
Review of work in progress October 2012 Part 1
Peter Missen
 
Chineese smuggling
grigor545
 
Linguagem sql
Vitor Alves
 
Heal from within
vickimartino
 
Build Your Best Auction Catalog Ever
Perry Allison
 
Diasanpatrick's xavicid
xavi1090
 
Canción la fruta presentación
MARI LUZ M. M.
 
Udemy Market-Research Entrepreneurship by Udemology
Nicky Wong
 
kan resume
Kan Mani
 
2011.02.05 run’oプレゼン
大祐 伊東
 
Dinamikakelompokprajab3
acep bambang
 
Joomla upgrades
Peter Bui
 
Ad

Similar to Web workers&parallel.js html5勉強会lt大会 (20)

PPTX
Mithril - 軽量/高速なMVCフレームワーク
sairoutine
 
PDF
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
 
PDF
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
 
PDF
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
 
PDF
[JavaOne Tokyo 2012] JavaFX and Web Integration
Kazuchika Sekiya
 
PDF
Web socketドロンくん その後-
Yuuichi Akagawa
 
PDF
Node.js勉強会 Framework Koa
kamiyam .
 
PPTX
徳島OSS勉強会第四回 シラサギハンズオン 0925
Yu Ito
 
PDF
about miruzo
eastfujiwara
 
PDF
SDLoader SeasarCon 2009 Whire
Akio Katayama
 
PDF
LabVIEW NXG Web Module Training Slide
Yusuke Tochigi
 
PPT
アプリコンテスト
Tomonori Yamada
 
PPT
もうひとつのNo sql couchdbとは
Koji Kawamura
 
PPTX
Couch Db勉強会0623 by yssk22
Yohei Sasaki
 
PPTX
.NET Core 3.0 で Blazor を使用した​フルスタック C# Web アプリ​の構築
Joni
 
PDF
Seasarプロジェクト徹底攻略
takezoe
 
PDF
PlayFramework1.2.4におけるWebSocket
Kazuhiro Hara
 
PDF
jQuery Mobile 最新情報 & Tips
yoshikawa_t
 
PPTX
明日からはじめられる Docker + さくらvpsを使った開発環境構築
MILI-LLC
 
PDF
Durable Functions (Core) 気になっていたことを勉強がてら実装してみた
朋志 佐々木
 
Mithril - 軽量/高速なMVCフレームワーク
sairoutine
 
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
 
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
 
[JavaOne Tokyo 2012] JavaFX and Web Integration
Kazuchika Sekiya
 
Web socketドロンくん その後-
Yuuichi Akagawa
 
Node.js勉強会 Framework Koa
kamiyam .
 
徳島OSS勉強会第四回 シラサギハンズオン 0925
Yu Ito
 
about miruzo
eastfujiwara
 
SDLoader SeasarCon 2009 Whire
Akio Katayama
 
LabVIEW NXG Web Module Training Slide
Yusuke Tochigi
 
アプリコンテスト
Tomonori Yamada
 
もうひとつのNo sql couchdbとは
Koji Kawamura
 
Couch Db勉強会0623 by yssk22
Yohei Sasaki
 
.NET Core 3.0 で Blazor を使用した​フルスタック C# Web アプリ​の構築
Joni
 
Seasarプロジェクト徹底攻略
takezoe
 
PlayFramework1.2.4におけるWebSocket
Kazuhiro Hara
 
jQuery Mobile 最新情報 & Tips
yoshikawa_t
 
明日からはじめられる Docker + さくらvpsを使った開発環境構築
MILI-LLC
 
Durable Functions (Core) 気になっていたことを勉強がてら実装してみた
朋志 佐々木
 

Web workers&parallel.js html5勉強会lt大会