狠狠撸
Submit Search
Mixer2によるdynamic css sprite 201309第三回渋谷java
2 likes
1,462 views
Y Watanabe
プログラマとWebデザイナを悩ませるCSS Spriteを、Webアプリ内部で完全自動でやってのけたぜ!
Read more
1 of 15
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
More Related Content
Viewers also liked
(15)
PDF
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Jun Futagawa
?
PDF
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
Y Watanabe
?
PDF
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
?
PDF
日本语による闯鲍苍颈迟の拡张について
Kazuro Fukuhara
?
PDF
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
Y Watanabe
?
PDF
jooqってなんて読むの? から始めるO/Rマッハ?ーとSpringBootの世界
Y Watanabe
?
PDF
渋谷箩补惫补?あなたのプロジェクトで気軽に箩补惫补をハ?ーシ?ョンアッフ?するために必要なこと
Y Watanabe
?
PPTX
Java Puzzlers JJUG CCC 2016
Yoshio Terada
?
PDF
テンプレートエンジンに惭颈虫别谤2を使うと厂别濒别苍颈耻尘でのテストもラクになるかもねという话
Y Watanabe
?
PDF
properties, yaml, and me
Y Watanabe
?
PDF
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Y Watanabe
?
PDF
テストゼロからイチに进むための戦略と戦术
Y Watanabe
?
PDF
厂别濒别苍颈耻尘と相性がいいテンプレートエンジン惭颈虫别谤2-第1回蝉别濒别苍颈耻尘勉强会ライトニングトーク
Y Watanabe
?
PPTX
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
sogdice
?
PDF
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
?
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Jun Futagawa
?
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
Y Watanabe
?
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
?
日本语による闯鲍苍颈迟の拡张について
Kazuro Fukuhara
?
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
Y Watanabe
?
jooqってなんて読むの? から始めるO/Rマッハ?ーとSpringBootの世界
Y Watanabe
?
渋谷箩补惫补?あなたのプロジェクトで気軽に箩补惫补をハ?ーシ?ョンアッフ?するために必要なこと
Y Watanabe
?
Java Puzzlers JJUG CCC 2016
Yoshio Terada
?
テンプレートエンジンに惭颈虫别谤2を使うと厂别濒别苍颈耻尘でのテストもラクになるかもねという话
Y Watanabe
?
properties, yaml, and me
Y Watanabe
?
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Y Watanabe
?
テストゼロからイチに进むための戦略と戦术
Y Watanabe
?
厂别濒别苍颈耻尘と相性がいいテンプレートエンジン惭颈虫别谤2-第1回蝉别濒别苍颈耻尘勉强会ライトニングトーク
Y Watanabe
?
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
sogdice
?
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
?
Similar to Mixer2によるdynamic css sprite 201309第三回渋谷java
(15)
ODP
お父さんのための実用闯补惫补厂肠谤颈辫迟プログラミング~入门篇~
Che Renkov
?
PDF
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
Toshimichi Suekane
?
PPTX
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
Kondo Hitoshi
?
PDF
インフォグラフィックス时代の顿3.箩蝉入门
貴寛 益子
?
PPTX
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
Shumpei Shiraishi
?
PDF
贰尘产耻濒办の骋颁厂/叠颈驳蚕耻别谤测周りのプラグインについて
Satoshi Akama
?
PDF
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
崇之 清水
?
PDF
CreateJS最新情報?Adobe MAX 2013より? / CreateJS勉強会(第3回)発表資料
Yasunobu Ikeda
?
PDF
CreateJS最新情報?Adobe MAX 2013より? / CreateJS勉強会(第3回)発表資料
Yasunobu Ikeda
?
PDF
Building 3D mobile apps using Power Apps Mixed Reality controls, Azure SQL Da...
Shotaro Suzuki
?
PDF
CSS Nite LP26 CodeKitで始める次世代Web制作
Maboroshi.inc
?
PPTX
Azure Blockchain Service ハンズオン ~ Logic App 統合編 ~
Takunori Minamisawa
?
PDF
颁厂厂だけで実现するグラフィック表现
AdvancedTechNight
?
PDF
DBFlute Mavenプラグインを用いてCRUD作成
Shinsuke Sugaya
?
PDF
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
normalian
?
お父さんのための実用闯补惫补厂肠谤颈辫迟プログラミング~入门篇~
Che Renkov
?
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
Toshimichi Suekane
?
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
Kondo Hitoshi
?
インフォグラフィックス时代の顿3.箩蝉入门
貴寛 益子
?
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
Shumpei Shiraishi
?
贰尘产耻濒办の骋颁厂/叠颈驳蚕耻别谤测周りのプラグインについて
Satoshi Akama
?
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
崇之 清水
?
CreateJS最新情報?Adobe MAX 2013より? / CreateJS勉強会(第3回)発表資料
Yasunobu Ikeda
?
CreateJS最新情報?Adobe MAX 2013より? / CreateJS勉強会(第3回)発表資料
Yasunobu Ikeda
?
Building 3D mobile apps using Power Apps Mixed Reality controls, Azure SQL Da...
Shotaro Suzuki
?
CSS Nite LP26 CodeKitで始める次世代Web制作
Maboroshi.inc
?
Azure Blockchain Service ハンズオン ~ Logic App 統合編 ~
Takunori Minamisawa
?
颁厂厂だけで実现するグラフィック表现
AdvancedTechNight
?
DBFlute Mavenプラグインを用いてCRUD作成
Shinsuke Sugaya
?
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
normalian
?
Ad
More from Y Watanabe
(6)
PDF
クラウド时代だから厂辫谤颈苍驳-搁别迟谤测フレームワーク
Y Watanabe
?
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
?
PDF
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
?
PDF
サーバーサイドな人がフロントエンド技术と仲良くするはじめの一歩
Y Watanabe
?
PDF
厂别濒别苍颈耻尘再入门-奥3颁勧告とページオブジェクトパターンと私-201707飞别产エンシ?ニア勉强会#2神田
Y Watanabe
?
PDF
奥别产エンジニアがスタートダッシュをキメるためのローカル开発环境の勘所
Y Watanabe
?
クラウド时代だから厂辫谤颈苍驳-搁别迟谤测フレームワーク
Y Watanabe
?
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
?
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
?
サーバーサイドな人がフロントエンド技术と仲良くするはじめの一歩
Y Watanabe
?
厂别濒别苍颈耻尘再入门-奥3颁勧告とページオブジェクトパターンと私-201707飞别产エンシ?ニア勉强会#2神田
Y Watanabe
?
奥别产エンジニアがスタートダッシュをキメるためのローカル开発环境の勘所
Y Watanabe
?
Ad
Mixer2によるdynamic css sprite 201309第三回渋谷java
1.
Mixer2 + SpringMVCで 夢のDynamic
CSS Sprite 第三回 #渋谷Java http://atnd.org/events/42501 2013-09-28 @nabedge http://mixer2.org
2.
本日のデモ予定 1. Mixer2によるフルーツショップサンプルアプ リ 2. ダイナミックCSS
Spriteサンプルアプリ。 3. もし時間があればMixer2に インラインJavaScriptをからめた サンプルアプリ ※すべてのソースは https://github.com/nabedge にて公開
3.
ところで 「全ページSSL」の時代 https://twitter.com https://github.com https://facebook.com https://グループ企業システム.com https://www.google.com Googleアドセンスがhttpsページ対応
4.
全ページSSL化とCSS Spriteの関係 1. ひとつのhtml上に20種の<img>タグ 2.
「全ページSSL」なので 画像もhttpsでレスポンス。 – さもないと変なダイアログが出ちゃうから。 3. 100人がアクセスしてきたら? 4. (1+20)*100=2100リクエスト CSS Spriteで20個の画像が 1個にまとまっていれば (1+1)*100 = 200 _人人人人人人_ > ひとケタ違う!<  ̄^Y^Y^Y^Y^ ̄
5.
処理可能な 同時セッション数 ライセンスキーの 価格 10,000 50万円 50,000 100万円 100,000
200万円 もっと必要!? 性能限界です。 上位機種の購入を ご検討ください とあるSSLアクセラレータ(あくまで例)
6.
甘く見ないほうがいいですよ ? 出典「SSL のパフォーマンスでお嘆きの貴兄に」 http://d.hatena.ne.jp/nappa_zzz/20111204/1322 961826 SSL
アクセラレータの価格に胃を痛めて いる貴兄、それが買えず SSL のためだ けにサーバの台数をニョキニョキ増やし ている貴兄、そうでなくとも SSL のパ フォーマンスでお嘆きの貴兄のために、 (以下略)
7.
一方、Webデザインの現場では 出典:「HTTPリクエストを減らすために - 【CSS Sprite編】スプライト地獄からの解放」 http://t32k.me/mol/log/reduce-http-requests-css-sprite (中略)考えてもみてください、画像の変更があ るたびにPhotoshopを開いて、画像を置き直し て、その位置をルーラーで割り出す。(中略)気 の遠くなるような面倒くさいタスクです。 (中略)もう、なんというかCSSスプライトが嫌 すぎてデザイナーと喧嘩することもしばしば。 これでは精神衛生上よくありません。
8.
デモへ ソースはこちら↓ https://github.com/nabedge/dynamic-css-sprite https://github.com/nabedge/googlemap-mixer2-sample
9.
Mixer2の特徴を一言でいうと Mixer2は、htmlタグを Javaオブジェクトとして 扱うので、実質なんでも できる。 HTML5のタグや data-*属性なども もちろんOK!
10.
CSS Spriteデモの動作原理(1) 1. Tomcat起動&Springコンテナ起動 2.
DI対象クラスをすべてインスタンス化 3. CssSpriteServiceクラスインスタンス化と同時 にテンプレートhtml(複数可)をMixer2でロード 4. <img class=“sprite” src=/nabedge/mixer2dynamic-css-sprite-201309java/“...” />タグをImg型オ ブジェクトして全部拾い出す。<img>がどこに あってもOK
11.
CSS Spriteデモの動作原理(2) 5. 画像のパス(src属性から絶対パス算出)と、 画像サイズを取得してMapに維持 6.
画像をタテに連結してBufferedImageで維持 7. ブラウザからのhttpリクエストをSpringMVCの コントローラが受け取る 8. コントローラがViewオブジェクトを作る 9. Viewオブジェクトがhtmlテンプレートをロード。 10.<img class=“sprite” src=/nabedge/mixer2dynamic-css-sprite-201309java/“...” />タグをImg型 オブジェクトして全部拾い出す。
12.
CSS Spriteデモの動作原理(3) 11.画像のパスをCssSpriteServiceインスタンス で維持しているMapと照合。 12.マッチしたらImgタグ型オブジェクトを操作 13.CssSpriteServiceが維持するmap情報から style属性用の値を取得し、style=/nabedge/mixer2dynamic-css-sprite-201309java/“...”をImgオ ブジェクトにsetStyle() 14. src=/nabedge/mixer2dynamic-css-sprite-201309java/“clear.gif”(1ドット透過gif)をImgオブジェ クトにsetSrc()
13.
CSS Spriteデモの動作原理(4) BEFORE: <img class="sprite"
src=/nabedge/mixer2dynamic-css-sprite-201309java/"foo/bar.png" /> AFTER: <img class=“sprite” src=“clear.gif" style=“width:40px; height:60px; background:url(/bigImage) 0 -319px;"/> /contextPath/bigImage へのhttpリクエストには あらかじめ作った巨大画像を直接レスポンス。
14.
インラインJavaScriptデモのポイント 1. 「サーバサイドからの埋め込みデータ」と 「JavaScriptプログラム」とを、 別々の<script>タグに分けてモックアップ htmlを作っておく。 – こうすれば、「JavaScriptがちゃんと動く状態の htmlモックアップ」を維持できる! 2.
APサーバ上で稼働させるときにMixer2で 「データ」のscriptタグだけを置換する
15.
おしまい ? 詳しくは公式サイトとgithubを 見てね! http://mixer2.org/ http://github.com/nabedge
Download