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

16
フロントエンド初学者が SPAに手を出してみた 2014/ 9/ 8

description

シングルページWebアプリケーションに関する背景と利用にあたってのメリット・デメリットを整理しました

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

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

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

2014/ 9/ 8

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

自己紹介

八木 啓太 (やぎ けいた) !

SI企業に勤務、Webへの関心から

2011年デジタルハリウッドスクールに入学。

現在は株式会社Art&Strategyの

ディレクターとして従事。

!

twitter:

@shafflife

https://twitter.com/shafflife

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

シングルページWebアプリケーション(SPA)とは?

・単一Webページで構成 !

・サーバーが行う処理の大半をクライアント側に移行 !

・ページ遷移、画面全体の更新を行わず、  部分的な更新が行える

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

SPA = 最近の技術?

古くはJava, Flashを使ったアプリケーションがあった →現在はJavascript(JS)を使った開発が注目

http://games.whomwah.com/spacelander.html

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

SPA = シングルページデザイン?

1枚ページで完結するWebページと仕組みがちょっと違う

http://bohemiancoding.com/sketch/

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

従来のWebページ

クライアント サーバー

各種ファイル

html

css

js

HTTP Request (初回)

HTTP Response

HTTP Request (2回目以降)

HTTPプロトコルで指定のファイルを取得、リフレッシュ

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

SPAの仕組み

HTTPで初回に読み込んだファイルをDOM操作、

必要な部分をAjaxで取得

クライアント サーバーhtml

css

js

HTTP Response

HTTP Request (2回目以降)

HTTP Request (初回)

Ajax

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

SPAの実装例(1/4)

http://engineer.typemag.jp/article/spa-dev http://www.hulu.jp

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

SPAの実装例(2/4)

http://qz.com/

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

SPAの実装例(3/4)

https://www.getcloudapp.com/

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

SPAの実装例(4/4)

https://trello.com/

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

SPAを構築するには

https://angularjs.org/ http://knockoutjs.com/ http://backbonejs.org/ http://www.sencha.com/ http://emberjs.com/

主にJavascriptフレームワークを使って開発

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

DEMO

http://emberjs.com/

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

SPAまとめ

メリット

・単一Webページで構成

 → ページのメンテナンスをJSでコントロール

!

・サーバーが行う処理の大半をクライアント側に移行

 → サーバー側にかかる処理・負荷を減らせる

!

・ページ遷移、画面全体の更新を行わず、部分的な更新が行える

 → 画面遷移が早い

!

⇒動的コンテンツのあるWebサービス構築に強い  デスクトップアプリケーションのような軽快さ、UX

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

SPAまとめ

デメリット

・単一Webページで構成

 → JSの書き方次第でパフォーマンスに影響、敷居が高い

  (逆にJSをレベルアップするチャンス?)

!

・サーバーが行う処理の大半をクライアント側に移行

 → サーバー自体の性能は変わらず、そちらは別対策が必要(Node.js等)

!

・ページ遷移、画面全体の更新を行わず、部分的な更新が行える

 → SEO対策が苦手

!

⇒静的コンテンツの多いサイト制作に不向き

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

ご清聴ありがとうございました