SlideShare a Scribd company logo
1 of 14
Download to read offline
Hijax - 少しずつJavaScriptの埋め込み




            Hijax
                              - 少しずつAjaxへ




                                   1 of 14
なぜAjaxなの?
 よりよいUI/UE(ユーザ側)
 リッチなUIの実現が可能になる。

 より速い処理(サーバー側)
 通信は画面遷移・リロードなし、データのみ

 より柔らかいシステムアーキテクチャー
 サービス単位で分けることが出来る(システムをAPI化)
 SOA、クラウド…




                        2 of 14
しかし、Ajaxの時代なのに...
 JavaScriptロード・初期化が失敗したら...

 JavaScriptを対応してないデバイスであれば...

 検索エンジンがアクセスする場合に...




       It must degrade well. It must still be
       accessible. It must be usable. If not, it is a
       cool useless piece of rubbish for some or
       many people.
                                           Thomas Vander Val



ピュアなHTMLは重要です!

                                3 of 14
漸進的にページを作る
コンテンツ
コンテンツを適当にマークアップ
プレゼンテーション層
各要素の振る舞い




              4 of 14
漸進的にページを作る
コンテンツ
コンテンツを適当にマークアップ HTML/XHTML
プレゼンテーション層 CSS
各要素の振る舞い JavaScript




                      5 of 14
ポイント!「分離」
CSSの分離
 inline

  <p style="font-weight: bold">This is an introductory paragraph.</p>


 external

  <p class="introduction">This is an introductory paragraph.</p>
  p.introduction { font-weight: bold; }




                                  6 of 14
ポイント!「分離」
JavaScriptの分離(ポップアップ)
 pseudo protocol - ダメ!

  <a href="javascript:window.open('help.html')">contextual help</a>


 空リンク - よくない!

  <a href="#"
    onclick="window.open('help.html'); return false;">contextual help</a>


 DOM - 良い!

  <a href="help.html"
    onclick="window.open(this.getAttribute('href')); return false;"
  >contextual help</a>




                                  7 of 14
ポイント!「分離」
徹底的な分離(ポップアップ)
 ピュアなHTML - 素晴らしい!

  <a href="help.html" >contextual help</a>


 JavaScriptでの初期化

  $(function(){
      $("a.help").bind("click", function(){
          window.open($(this).attr("href"));
          return false;
      });
  });




                                  8 of 14
JavaScriptを使う時に

  <a href="#" >...</a>



  <a href="javascript:" >...</a>



  inline イベントハンドラー



ご遠慮ください!




                                   9 of 14
Hijax
 クラシック方法でウェブシステムを作る。

 画面遷移はリンクとフォームで実装する。

 JavaScriptでリンクとフォームをハイジャック(hijack)する。

 フォームやリンクを代わりに、XMLHttpRequestでサーバーへ通信させる。

 サーバはただのデータを返却する。




                           10 of 14
システムの仕組み
サーバー側
モジュール化(サービス化、API化)

データフォーマット
  XML + DOM
  JSON + eval()
  HTML + innerHTML




                     11 of 14
タイミング
最初には、Ajaxをプランする。
最後には、Ajaxを実装する。




                  12 of 14
Hijaxの利点
 無垢なHTML
  どんなディバイスでも使えるシステム
  検索エンジンにやさしい


 DRY
  ロジックとプレゼンテーションの分離、メンテナンスしやすい。


 セキュリティー
  すべてのビジネスロジックはサーバーサイドにある。




                      13 of 14
Thank you!




    14 of 14

More Related Content

What's hot

Cross-Origin Resource Sharing
Cross-Origin Resource SharingCross-Origin Resource Sharing
Cross-Origin Resource SharingHiyou Shinnonome
 
CMSから考えるサイト設計
CMSから考えるサイト設計CMSから考えるサイト設計
CMSから考えるサイト設計Masaya Kogawa
 
実践・ブラウザテスト自動化
実践・ブラウザテスト自動化実践・ブラウザテスト自動化
実践・ブラウザテスト自動化takahiro sakuma
 
Cache 自由自在
Cache 自由自在Cache 自由自在
Cache 自由自在Ryu Shindo
 
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】Yasuhito Yabe
 
はじめてのVue.js
はじめてのVue.jsはじめてのVue.js
はじめてのVue.jskamiyam .
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowlerTakuro Sasaki
 
Capybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピングCapybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピングKoji Nakamura
 
Rubyによるクローラー開発
Rubyによるクローラー開発Rubyによるクローラー開発
Rubyによるクローラー開発しくみ製作所
 
Web programming introduction
Web programming introductionWeb programming introduction
Web programming introductioncolun
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発 daisuke-a-matsui
 
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~Yuki Hirano
 
Web API のすすめ
Web API のすすめWeb API のすすめ
Web API のすすめYuji Shimada
 
Closure Toolsの紹介
Closure Toolsの紹介Closure Toolsの紹介
Closure Toolsの紹介Yusuke Amano
 
ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善Joni
 

What's hot (19)

Cross-Origin Resource Sharing
Cross-Origin Resource SharingCross-Origin Resource Sharing
Cross-Origin Resource Sharing
 
CMSから考えるサイト設計
CMSから考えるサイト設計CMSから考えるサイト設計
CMSから考えるサイト設計
 
実践・ブラウザテスト自動化
実践・ブラウザテスト自動化実践・ブラウザテスト自動化
実践・ブラウザテスト自動化
 
Cache 自由自在
Cache 自由自在Cache 自由自在
Cache 自由自在
 
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
 
はじめてのVue.js
はじめてのVue.jsはじめてのVue.js
はじめてのVue.js
 
20090418
2009041820090418
20090418
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowler
 
Capybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピングCapybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピング
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
 
Rubyによるクローラー開発
Rubyによるクローラー開発Rubyによるクローラー開発
Rubyによるクローラー開発
 
Antのススメ
AntのススメAntのススメ
Antのススメ
 
Web programming introduction
Web programming introductionWeb programming introduction
Web programming introduction
 
ServerSideJavaScript
ServerSideJavaScriptServerSideJavaScript
ServerSideJavaScript
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発
 
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
 
Web API のすすめ
Web API のすすめWeb API のすすめ
Web API のすすめ
 
Closure Toolsの紹介
Closure Toolsの紹介Closure Toolsの紹介
Closure Toolsの紹介
 
ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善
 

Similar to Hijax - 少しずつAjaxへ

Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takeharaHiroshi Okunushi
 
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Sho Ito
 
Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API GatewayTakuro Sasaki
 
SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介Tadahiro Higuchi
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれMasataka MIZUNO
 
マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?Microsoft
 
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれからAkira Inoue
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップYasuhito Yabe
 
第19回html5とか勉強会 pjax
第19回html5とか勉強会 pjax第19回html5とか勉強会 pjax
第19回html5とか勉強会 pjaxKensaku Komatsu
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Hideki Hashizume
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後Akira Inoue
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...Funada Yasunobu
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...Funada Yasunobu
 
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフラインWebフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフラインShumpei Shiraishi
 

Similar to Hijax - 少しずつAjaxへ (20)

Canvas勉強会
Canvas勉強会Canvas勉強会
Canvas勉強会
 
Ajax basic
Ajax basicAjax basic
Ajax basic
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takehara
 
Groovyコンファレンス
GroovyコンファレンスGroovyコンファレンス
Groovyコンファレンス
 
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5
 
Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API Gateway
 
SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介
 
Pjax1
Pjax1Pjax1
Pjax1
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
勉強会資料①
勉強会資料①勉強会資料①
勉強会資料①
 
マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?
 
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれから
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
第19回html5とか勉強会 pjax
第19回html5とか勉強会 pjax第19回html5とか勉強会 pjax
第19回html5とか勉強会 pjax
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
 
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフラインWebフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
 

Hijax - 少しずつAjaxへ