SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
フロントエンド初学者が 
SPAに手を出してみた 
2014/ 9/ 8
自己紹介 
八木 啓太 (やぎ けいた) 
! 
SI企業に勤務、Webへの関心から 
2011年デジタルハリウッドスクールに入学。 
現在は株式会社Art&Strategyの 
ディレクターとして従事。 
! 
twitter: 
@shafflife 
https://twitter.com/shafflife
シングルページWebアプリケーション(SPA)とは? 
・単一Webページで構成 
! 
・サーバーが行う処理の大半をクライアント側に移行 
! 
・ページ遷移、画面全体の更新を行わず、 
 部分的な更新が行える
SPA = 最近の技術? 
古くはJava, Flashを使ったアプリケーションがあった 
→現在はJavascript(JS)を使った開発が注目 
http://games.whomwah.com/spacelander.html
SPA = シングルページデザイン? 
1枚ページで完結するWebページと仕組みがちょっと違う 
http://bohemiancoding.com/sketch/
従来のWebページ 
html 
css 
HTTP Request 
(初回) 
HTTP Response 
クライアントサーバー 
js 
各種ファイル 
HTTP Request 
(2回目以降) 
… 
HTTPプロトコルで指定のファイルを取得、リフレッシュ
SPAの仕組み 
HTTP Request 
(初回) 
html 
クライアントサーバー 
css 
js 
HTTP 
Response 
HTTP 
Request 
(2回目以降) 
… 
Ajax 
HTTPで初回に読み込んだファイルをDOM操作、 
必要な部分をAjaxで取得
SPAの実装例(1/4) 
http://engineer.typemag.jp/article/spa-dev 
http://www.hulu.jp
SPAの実装例(2/4) 
http://qz.com/
SPAの実装例(3/4) 
https://www.getcloudapp.com/
SPAの実装例(4/4) 
https://trello.com/
SPAを構築するには 
https://angularjs.org/ 
http://knockoutjs.com/ 
http://backbonejs.org/ 
http://www.sencha.com/ 
http://emberjs.com/ 
主にJavascriptフレームワークを使って開発
DEMO 
http://emberjs.com/
SPAまとめ 
メリット 
・単一Webページで構成 
 → ページのメンテナンスをJSでコントロール 
! 
・サーバーが行う処理の大半をクライアント側に移行 
 → サーバー側にかかる処理・負荷を減らせる 
! 
・ページ遷移、画面全体の更新を行わず、部分的な更新が行える 
 → 画面遷移が早い 
! 
⇒動的コンテンツのあるWebサービス構築に強い 
 デスクトップアプリケーションのような軽快さ、UX
SPAまとめ 
デメリット 
・単一Webページで構成 
 → JSの書き方次第でパフォーマンスに影響、敷居が高い 
  (逆にJSをレベルアップするチャンス?) 
! 
・サーバーが行う処理の大半をクライアント側に移行 
 → サーバー自体の性能は変わらず、そちらは別対策が必要(Node.js等) 
! 
・ページ遷移、画面全体の更新を行わず、部分的な更新が行える 
 → SEO対策が苦手 
! 
⇒静的コンテンツの多いサイト制作に不向き
ご清聴ありがとうございました

Contenu connexe

Tendances

Single-page application
Single-page applicationSingle-page application
Single-page application
Fumio SAGAWA
 
Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
VOYAGE GROUP
 
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
Takahiro Moteki
 
20150531 phpcon kansai
20150531 phpcon kansai20150531 phpcon kansai
20150531 phpcon kansai
kumamidori
 
オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門
Fumio SAGAWA
 

Tendances (20)

イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱
 
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
 
Single-page application
Single-page applicationSingle-page application
Single-page application
 
WordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリWordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリ
 
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろうPHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
 
AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化
 
どうなる?Visual Studioの クライアントサイド web開発の今後
どうなる?Visual Studioの クライアントサイド web開発の今後どうなる?Visual Studioの クライアントサイド web開発の今後
どうなる?Visual Studioの クライアントサイド web開発の今後
 
Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
 
モダンWeb開発ワークショップ
モダンWeb開発ワークショップモダンWeb開発ワークショップ
モダンWeb開発ワークショップ
 
MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介  MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
 
How do you like knockout?
How do you like knockout?How do you like knockout?
How do you like knockout?
 
ASP.NET "NOW" and "NEXT"
ASP.NET "NOW" and "NEXT"ASP.NET "NOW" and "NEXT"
ASP.NET "NOW" and "NEXT"
 
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
 
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へJavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
 
Angular2
Angular2Angular2
Angular2
 
20150531 phpcon kansai
20150531 phpcon kansai20150531 phpcon kansai
20150531 phpcon kansai
 
オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門オープンソースで始めるオフラインアプリケーション開発入門
オープンソースで始めるオフラインアプリケーション開発入門
 
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
 

En vedette

今からでも遅くない! React事始め
今からでも遅くない! React事始め今からでも遅くない! React事始め
今からでも遅くない! React事始め
ynaruta
 

En vedette (12)

SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
 
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかなぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
 
まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?
 
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティスコンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発
 
今からでも遅くない! React事始め
今からでも遅くない! React事始め今からでも遅くない! React事始め
今からでも遅くない! React事始め
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話
 
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかたエンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
 
HTML5のAPI群をただひたすらに触ってみた記録
HTML5のAPI群をただひたすらに触ってみた記録HTML5のAPI群をただひたすらに触ってみた記録
HTML5のAPI群をただひたすらに触ってみた記録
 
今どきの若手育成にひそむ3つの思いこみ
今どきの若手育成にひそむ3つの思いこみ今どきの若手育成にひそむ3つの思いこみ
今どきの若手育成にひそむ3つの思いこみ
 
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えようReact系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
 
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
 

Similaire à フロントエンド初学者がSPAに手を出してみた

チームラボ スマホアプリチームの面白い仕事の作り方
チームラボ スマホアプリチームの面白い仕事の作り方チームラボ スマホアプリチームの面白い仕事の作り方
チームラボ スマホアプリチームの面白い仕事の作り方
Wataru Sakashita
 
地域情報アプリ
地域情報アプリ地域情報アプリ
地域情報アプリ
yohei iwakura
 
HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?
Masakazu Muraoka
 
ボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考えるボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考える
Masakazu Muraoka
 
ON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったことON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったこと
Masakazu Muraoka
 

Similaire à フロントエンド初学者がSPAに手を出してみた (20)

Webデザインにおける「見えづらい」こだわりハック
Webデザインにおける「見えづらい」こだわりハックWebデザインにおける「見えづらい」こだわりハック
Webデザインにおける「見えづらい」こだわりハック
 
チームラボ スマホアプリチームの面白い仕事の作り方
チームラボ スマホアプリチームの面白い仕事の作り方チームラボ スマホアプリチームの面白い仕事の作り方
チームラボ スマホアプリチームの面白い仕事の作り方
 
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
 
地域情報アプリ
地域情報アプリ地域情報アプリ
地域情報アプリ
 
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術
 
Jquery 140522
Jquery 140522Jquery 140522
Jquery 140522
 
もしも素人営業ウーマンが UI/UXデザイナーになったら
もしも素人営業ウーマンが UI/UXデザイナーになったらもしも素人営業ウーマンが UI/UXデザイナーになったら
もしも素人営業ウーマンが UI/UXデザイナーになったら
 
自分に合ったWeb出店とは? in まるたまサマースクール
自分に合ったWeb出店とは? in まるたまサマースクール自分に合ったWeb出店とは? in まるたまサマースクール
自分に合ったWeb出店とは? in まるたまサマースクール
 
HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?HTML5が最近どうなっていて何があぶなっかしいのか?
HTML5が最近どうなっていて何があぶなっかしいのか?
 
モバイルファーストで考える最新トレンドと アダプティブデザイン
モバイルファーストで考える最新トレンドと アダプティブデザインモバイルファーストで考える最新トレンドと アダプティブデザイン
モバイルファーストで考える最新トレンドと アダプティブデザイン
 
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
 
Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線
 
Bootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭りBootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭り
 
React way at_eight
React way at_eightReact way at_eight
React way at_eight
 
Web開発の 今までとこれから
Web開発の 今までとこれからWeb開発の 今までとこれから
Web開発の 今までとこれから
 
Bracketsについて
BracketsについてBracketsについて
Bracketsについて
 
Dspを活用したアプリ向けリターゲティング広告について
Dspを活用したアプリ向けリターゲティング広告についてDspを活用したアプリ向けリターゲティング広告について
Dspを活用したアプリ向けリターゲティング広告について
 
ボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考えるボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考える
 
モバイルWebアプリケーションを複数端末で動かすために注意すること
モバイルWebアプリケーションを複数端末で動かすために注意することモバイルWebアプリケーションを複数端末で動かすために注意すること
モバイルWebアプリケーションを複数端末で動かすために注意すること
 
ON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったことON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったこと
 

Plus de Kei Yagi

Structure synth
Structure synthStructure synth
Structure synth
Kei Yagi
 
Context free
Context freeContext free
Context free
Kei Yagi
 

Plus de Kei Yagi (9)

Vue Router + Vuex
Vue Router + VuexVue Router + Vuex
Vue Router + Vuex
 
Vue.js 基礎 + Vue CLI の使い方
Vue.js 基礎 + Vue CLI の使い方Vue.js 基礎 + Vue CLI の使い方
Vue.js 基礎 + Vue CLI の使い方
 
Vue.js Outline
Vue.js OutlineVue.js Outline
Vue.js Outline
 
GPUインスタンシングとAnimation Texture Baker
GPUインスタンシングとAnimation Texture BakerGPUインスタンシングとAnimation Texture Baker
GPUインスタンシングとAnimation Texture Baker
 
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
 
はじめてのVue.js
はじめてのVue.jsはじめてのVue.js
はじめてのVue.js
 
iOS11について本気出して考えてみた
iOS11について本気出して考えてみたiOS11について本気出して考えてみた
iOS11について本気出して考えてみた
 
Structure synth
Structure synthStructure synth
Structure synth
 
Context free
Context freeContext free
Context free
 

Dernier

Dernier (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

フロントエンド初学者がSPAに手を出してみた