Submit Search
Upload
UXを損ねる静的コンテンツ配信アンチパターン7選
•
Download as PPTX, PDF
•
6 likes
•
5,452 views
Yuki Okada
Follow
静的コンテンツ配信のよくあるアンチパターンを学んで、良いUXを提供しましょう!
Read less
Read more
Internet
Report
Share
Report
Share
1 of 34
Download now
Recommended
あなたの言葉で伝えるWebアクセシビリティ
あなたの言葉で伝えるWebアクセシビリティ
Kobayashi Daisuke
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
Yuki Okada
kintoneの大規模フロントエンド開発とツール
kintoneの大規模フロントエンド開発とツール
Yasuharu Sakai
エンジニアが働きたい場所で働けるために、チームに必要なこと
エンジニアが働きたい場所で働けるために、チームに必要なこと
Yuki Okada
kintoneフロントエンド開発 モダン化への道
kintoneフロントエンド開発 モダン化への道
Yusuke Amano
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
Yuki Okada
kintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツール
Yuki Okada
チームで取り組む!サイボウズのアクセシビリティ 開発プロセスにアクセシビリティをインクルードする | GAAD Japan 2021
チームで取り組む!サイボウズのアクセシビリティ 開発プロセスにアクセシビリティをインクルードする | GAAD Japan 2021
Kobayashi Daisuke
Recommended
あなたの言葉で伝えるWebアクセシビリティ
あなたの言葉で伝えるWebアクセシビリティ
Kobayashi Daisuke
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
Yuki Okada
kintoneの大規模フロントエンド開発とツール
kintoneの大規模フロントエンド開発とツール
Yasuharu Sakai
エンジニアが働きたい場所で働けるために、チームに必要なこと
エンジニアが働きたい場所で働けるために、チームに必要なこと
Yuki Okada
kintoneフロントエンド開発 モダン化への道
kintoneフロントエンド開発 モダン化への道
Yusuke Amano
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
Yuki Okada
kintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツール
Yuki Okada
チームで取り組む!サイボウズのアクセシビリティ 開発プロセスにアクセシビリティをインクルードする | GAAD Japan 2021
チームで取り組む!サイボウズのアクセシビリティ 開発プロセスにアクセシビリティをインクルードする | GAAD Japan 2021
Kobayashi Daisuke
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
Yuki Okada
kintoneエンジニアが紹介する品質向上のための取り組み
kintoneエンジニアが紹介する品質向上のための取り組み
Yasuharu Sakai
kintoneとカラーユニバーサルデザイン
kintoneとカラーユニバーサルデザイン
Kobayashi Daisuke
遅いクエリと向き合う仕組み #CybozuMeetup
遅いクエリと向き合う仕組み #CybozuMeetup
S Akai
なぜ、サイボウズでアクセシビリティなのか?
なぜ、サイボウズでアクセシビリティなのか?
力也 伊原
Webアクセシビリティポリシーのつくりかた・ひろめかた
Webアクセシビリティポリシーのつくりかた・ひろめかた
Kobayashi Daisuke
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
Yuki Okada
Devsumi2015
Devsumi2015
亮 門屋
WikiWikiアジャイル
WikiWikiアジャイル
Fumio Kawakami
こだわりのkintone
こだわりのkintone
Yusuke Amano
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
Yuki Okada
アジャイルパラレル開発
アジャイルパラレル開発
Fumio Kawakami
すべての人にチームワークを サイボウズのアクセシビリティ
すべての人にチームワークを サイボウズのアクセシビリティ
Kobayashi Daisuke
Devsumi2015 ushirosako
Devsumi2015 ushirosako
Takashi Ushirosako
サイボウズはアクセシビリティになぜ取り組む?どう取り組む?
サイボウズはアクセシビリティになぜ取り組む?どう取り組む?
Kobayashi Daisuke
アクセシビリティの祭典2021:みんなで創ろうアクセシブルなグループウェア インクルーシブな製品開発
アクセシビリティの祭典2021:みんなで創ろうアクセシブルなグループウェア インクルーシブな製品開発
Kobayashi Daisuke
Mizuhohack kintone
Mizuhohack kintone
kintone papers
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
Teruo Adachi
缶詰屋さんの課題解決にスクラムを使ってみた
缶詰屋さんの課題解決にスクラムを使ってみた
Toshiyuki Ohtomo
How to develop a huge Single Page Application
How to develop a huge Single Page Application
Naoki Yamada
人類の進化とデザイン
人類の進化とデザイン
Ayaka Sumida
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
Yuki Okada
More Related Content
What's hot
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
Yuki Okada
kintoneエンジニアが紹介する品質向上のための取り組み
kintoneエンジニアが紹介する品質向上のための取り組み
Yasuharu Sakai
kintoneとカラーユニバーサルデザイン
kintoneとカラーユニバーサルデザイン
Kobayashi Daisuke
遅いクエリと向き合う仕組み #CybozuMeetup
遅いクエリと向き合う仕組み #CybozuMeetup
S Akai
なぜ、サイボウズでアクセシビリティなのか?
なぜ、サイボウズでアクセシビリティなのか?
力也 伊原
Webアクセシビリティポリシーのつくりかた・ひろめかた
Webアクセシビリティポリシーのつくりかた・ひろめかた
Kobayashi Daisuke
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
Yuki Okada
Devsumi2015
Devsumi2015
亮 門屋
WikiWikiアジャイル
WikiWikiアジャイル
Fumio Kawakami
こだわりのkintone
こだわりのkintone
Yusuke Amano
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
Yuki Okada
アジャイルパラレル開発
アジャイルパラレル開発
Fumio Kawakami
すべての人にチームワークを サイボウズのアクセシビリティ
すべての人にチームワークを サイボウズのアクセシビリティ
Kobayashi Daisuke
Devsumi2015 ushirosako
Devsumi2015 ushirosako
Takashi Ushirosako
サイボウズはアクセシビリティになぜ取り組む?どう取り組む?
サイボウズはアクセシビリティになぜ取り組む?どう取り組む?
Kobayashi Daisuke
アクセシビリティの祭典2021:みんなで創ろうアクセシブルなグループウェア インクルーシブな製品開発
アクセシビリティの祭典2021:みんなで創ろうアクセシブルなグループウェア インクルーシブな製品開発
Kobayashi Daisuke
Mizuhohack kintone
Mizuhohack kintone
kintone papers
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
Teruo Adachi
缶詰屋さんの課題解決にスクラムを使ってみた
缶詰屋さんの課題解決にスクラムを使ってみた
Toshiyuki Ohtomo
How to develop a huge Single Page Application
How to develop a huge Single Page Application
Naoki Yamada
What's hot
(20)
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
kintoneエンジニアが紹介する品質向上のための取り組み
kintoneエンジニアが紹介する品質向上のための取り組み
kintoneとカラーユニバーサルデザイン
kintoneとカラーユニバーサルデザイン
遅いクエリと向き合う仕組み #CybozuMeetup
遅いクエリと向き合う仕組み #CybozuMeetup
なぜ、サイボウズでアクセシビリティなのか?
なぜ、サイボウズでアクセシビリティなのか?
Webアクセシビリティポリシーのつくりかた・ひろめかた
Webアクセシビリティポリシーのつくりかた・ひろめかた
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
Devsumi2015
Devsumi2015
WikiWikiアジャイル
WikiWikiアジャイル
こだわりのkintone
こだわりのkintone
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
アジャイルパラレル開発
アジャイルパラレル開発
すべての人にチームワークを サイボウズのアクセシビリティ
すべての人にチームワークを サイボウズのアクセシビリティ
Devsumi2015 ushirosako
Devsumi2015 ushirosako
サイボウズはアクセシビリティになぜ取り組む?どう取り組む?
サイボウズはアクセシビリティになぜ取り組む?どう取り組む?
アクセシビリティの祭典2021:みんなで創ろうアクセシブルなグループウェア インクルーシブな製品開発
アクセシビリティの祭典2021:みんなで創ろうアクセシブルなグループウェア インクルーシブな製品開発
Mizuhohack kintone
Mizuhohack kintone
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
缶詰屋さんの課題解決にスクラムを使ってみた
缶詰屋さんの課題解決にスクラムを使ってみた
How to develop a huge Single Page Application
How to develop a huge Single Page Application
Viewers also liked
人類の進化とデザイン
人類の進化とデザイン
Ayaka Sumida
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
Yuki Okada
Digitization-software is eating the world
Digitization-software is eating the world
Kenji Hiranabe
160625 cloud samurai_adds_migration_160625
160625 cloud samurai_adds_migration_160625
wintechq
Rdra in 東京
Rdra in 東京
Zenji Kanzaki
デザイン・制作をはじめる前に 取り組む事
デザイン・制作をはじめる前に 取り組む事
kenji goto
メガネ型デバイスの未来について考える
メガネ型デバイスの未来について考える
Sho Okada
新規ビジネスデザイン研修 DYA2 テキスト<サンプル版>
新規ビジネスデザイン研修 DYA2 テキスト<サンプル版>
Satoru Itabashi
ピクト図解®メソッド【入門A】テキスト
ピクト図解®メソッド【入門A】テキスト
Satoru Itabashi
Jenkins実践入門 第二版 What's New
Jenkins実践入門 第二版 What's New
Masanori Satoh
Rdra4越境アジャイル
Rdra4越境アジャイル
Zenji Kanzaki
ピクト図解(R)表記ルールver1.0
ピクト図解(R)表記ルールver1.0
PICTO ZUKAI
Ad設計
Ad設計
Naoki Abe
AD設計の基礎から読み解くIaaS On AD
AD設計の基礎から読み解くIaaS On AD
Naoki Abe
CSS設計とデザインとの距離
CSS設計とデザインとの距離
Manabu Yasuda
Hyper-V仮想マシンをAzureへV2C移行
Hyper-V仮想マシンをAzureへV2C移行
wintechq
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
Sho Okada
CloudSpiral 2014年度 Webアプリ講義(1日目)
CloudSpiral 2014年度 Webアプリ講義(1日目)
Shin Matsumoto
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Masanori Satoh
CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)
Shin Matsumoto
Viewers also liked
(20)
人類の進化とデザイン
人類の進化とデザイン
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
Digitization-software is eating the world
Digitization-software is eating the world
160625 cloud samurai_adds_migration_160625
160625 cloud samurai_adds_migration_160625
Rdra in 東京
Rdra in 東京
デザイン・制作をはじめる前に 取り組む事
デザイン・制作をはじめる前に 取り組む事
メガネ型デバイスの未来について考える
メガネ型デバイスの未来について考える
新規ビジネスデザイン研修 DYA2 テキスト<サンプル版>
新規ビジネスデザイン研修 DYA2 テキスト<サンプル版>
ピクト図解®メソッド【入門A】テキスト
ピクト図解®メソッド【入門A】テキスト
Jenkins実践入門 第二版 What's New
Jenkins実践入門 第二版 What's New
Rdra4越境アジャイル
Rdra4越境アジャイル
ピクト図解(R)表記ルールver1.0
ピクト図解(R)表記ルールver1.0
Ad設計
Ad設計
AD設計の基礎から読み解くIaaS On AD
AD設計の基礎から読み解くIaaS On AD
CSS設計とデザインとの距離
CSS設計とデザインとの距離
Hyper-V仮想マシンをAzureへV2C移行
Hyper-V仮想マシンをAzureへV2C移行
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
CloudSpiral 2014年度 Webアプリ講義(1日目)
CloudSpiral 2014年度 Webアプリ講義(1日目)
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)
Similar to UXを損ねる静的コンテンツ配信アンチパターン7選
Ssi 20150519
Ssi 20150519
真一 藤川
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
真一 藤川
1112 nuxt
1112 nuxt
卓馬 三浦卓馬
初めてのWebプログラミング講座
初めてのWebプログラミング講座
DIVE INTO CODE Corp.
0728
0728
卓馬 三浦卓馬
エンジニア組織づくり5年。見えてきた関西Web界隈のええとこ、あかんとこ - Developers Summit 2019 KANSAI
エンジニア組織づくり5年。見えてきた関西Web界隈のええとこ、あかんとこ - Developers Summit 2019 KANSAI
Yuki Okada
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
SORACOM,INC
モバイル用Webフレームワーク最前線
モバイル用Webフレームワーク最前線
アシアル株式会社
LexuesAcademy-全体まとめ
LexuesAcademy-全体まとめ
Shin Sekaryo
javascriptの基礎
javascriptの基礎
Masayuki Abe
デバイス時代の Web UI コンポーネント活用
デバイス時代の Web UI コンポーネント活用
インフラジスティックス・ジャパン株式会社
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
Akira Nagata
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor App
TomomitsuKusaba
クラウドが変えるwebの世界
クラウドが変えるwebの世界
Satoshi Ishikawa
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
Yuta Matsumura
ウェブディレクションの基礎(第2回:制作・開発編) 先生:小嶋裕亮
ウェブディレクションの基礎(第2回:制作・開発編) 先生:小嶋裕亮
schoowebcampus
ABC2014 Spring: UI/UX Design Trends 2014
ABC2014 Spring: UI/UX Design Trends 2014
Nobuya Sato
5 1
5 1
卓馬 三浦
Migration to WPF
Migration to WPF
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術
Tomoki Hasegawa
Similar to UXを損ねる静的コンテンツ配信アンチパターン7選
(20)
Ssi 20150519
Ssi 20150519
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
1112 nuxt
1112 nuxt
初めてのWebプログラミング講座
初めてのWebプログラミング講座
0728
0728
エンジニア組織づくり5年。見えてきた関西Web界隈のええとこ、あかんとこ - Developers Summit 2019 KANSAI
エンジニア組織づくり5年。見えてきた関西Web界隈のええとこ、あかんとこ - Developers Summit 2019 KANSAI
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
デブサミ関西 2017| IoTビジネスが もっと発展するために必要なものとは?
モバイル用Webフレームワーク最前線
モバイル用Webフレームワーク最前線
LexuesAcademy-全体まとめ
LexuesAcademy-全体まとめ
javascriptの基礎
javascriptの基礎
デバイス時代の Web UI コンポーネント活用
デバイス時代の Web UI コンポーネント活用
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor App
クラウドが変えるwebの世界
クラウドが変えるwebの世界
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
ウェブディレクションの基礎(第2回:制作・開発編) 先生:小嶋裕亮
ウェブディレクションの基礎(第2回:制作・開発編) 先生:小嶋裕亮
ABC2014 Spring: UI/UX Design Trends 2014
ABC2014 Spring: UI/UX Design Trends 2014
5 1
5 1
Migration to WPF
Migration to WPF
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術
UXを損ねる静的コンテンツ配信アンチパターン7選
1.
UXを損ねる静的コンテンツ配信アンチパターン7選 サイボウズ株式会社 大阪開発部 Webアプリケーションエンジニア 岡田 勇樹 [HTML/JS/CSS]
WebデザインとUX について考える
2.
Twitterハッシュタグ #frontkansai 2
3.
自己紹介 ▌岡田勇樹 @y_okady ▌神戸大学出身 33歳 ▌Webアプリケーションエンジニア
兼 マネージャー ▌サイボウズ歴 2007年 新卒入社 2009年 サイボウズ Office サブリーダー 2011年 kintone リーダー 2014年 大阪開発拠点立ち上げ 2015年 大阪開発部 部長 ▌野球観戦、サッカー観戦、フットサル、ゴルフ 3
4.
チームの役に立つサービス 4 サークル 家庭 仕事 学校 友人 国内外 660 万人の利用者
5.
インフラからアプリケーションまですべて自社開発 5 OS・ハードウェア・ネットワーク ミドルウェア Webアプリケーション 自社開発 + OSS
+ 開発効率化のための様々なツール
6.
今日のお話 ▌開発環境でちゃんと動いてるからって、本番環境でもちゃんと動いてると 思ってませんか? ▌予期せずUXを損ねてませんか? ▌静的コンテンツ配信のよくあるアンチパターンを学んで、良いUXを提供し ましょう! 6
7.
選ばれし7つのアンチパターン 1. 大きな画像をサイズ指定で縮小表示 2. サイズを指定せずに画像表示 3.
Retina対策していない画像表示 4. JavaScriptファイルをそのまま公開 5. なんとなくheadにscript 6. キャッシュを有効化してるのに上書き保存 7. なんでもかんでもキャッシュOFF 7
8.
1. 大きな画像をサイズ指定で縮小表示 ▌悪い例 8 <img src="photo.jpg"
style="width: 320px; height: 240px;" /> 320px 240px2448px 3264px 1.7MB 1.7MB 4G環境で読み込みに5秒 表示
9.
1. 大きな画像をサイズ指定で縮小表示 ▌良い例 9 <img src="photo.jpg"
/> 320px 240px 1.7MB 22KB 表示 320px 240px 22KB 変換 適切なサイズに変換した画像を表示しよう!
10.
2. サイズを指定せずに画像表示 ▌悪い例 10 <img src="banner.jpg"
/><br /> <a href="http://cybozu.co.jp">サイボウズ株式会社</a> 画像読み込み前 画像読み込み後 画像より後の要素の位置が変わる
11.
2. サイズを指定せずに画像表示 ▌良い例 11 画像読み込み前 画像読み込み後 <img
src="banner.jpg" style="width:640px; height:240px;" /><br /> <a href="http://cybozu.co.jp">サイボウズ株式会社</a> サイズを指定して画像を表示しよう!
12.
3. Retina対策していない画像表示 12 ▌悪い例 <img src="kintone.png"
style="width:485px; height:225px;" /> 485x225の画像を、485x225で表示
13.
3. Retina対策していない画像表示 ▌良い例 13 <img src="kintone@2x.png"
style="width:485px; height:225px;" /> 970x450の画像を、485x225で表示 CSSピクセルに合ったサイズの画像を用意しよう!
14.
3. Retina対策していない画像表示 14
15.
3. Retina対策していない画像表示 ▌HTML5のsrcset属性 ▌CSSのMedia Queries 15 <img
src=“kintone.png” srcset=“kintone.png 1x, kintone@2x.png 2x” style="width:485px; height:225px;" /> <span class="kintone_image"></span> .kintone_image { background-image: url(“kintone.png”); background-size: 485px 225px; } @media only screen and (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) { .kintone_image { background-image: url("kintone@2x.png"); } }
16.
4. JavaScriptファイルをそのまま公開 ▌悪い例 16 <script src="1.js"></script> <script
src="2.js"></script> <script src="3.js"></script> <script src="4.js"></script> <script src="5.js"></script> kintoneのJavaScriptは1,000ファイル、10MB、40万行 そのまま読み込むと3秒以上はかかる
17.
4. JavaScriptファイルをそのまま公開 ▌良い例 17 <script src="min.js?20160514"></script> $
uglifyjs 1.js 2.js 3.js 4.js 5.js –-compress –-output min.js JavaScriptファイルを圧縮・結合しよう! kintoneで実際に読み込まれるJavaScriptは6ファイル、273KB
18.
5. なんとなくheadにscript ▌悪い例 18 <head> <script src="jquery.js"></script> <script
src=”main.js"></script> </head> <body> <h1>We are Hiring!</h1> <h2 id="message"></h2> </body> 読み込み完了 何も表示されない ここでブロックされる // ... // めっちゃ時間のかかる処理をした後に画面を更新 $(window).load(function() { $("#message").html("Welcome to Cybozu!"); });
19.
5. なんとなくheadにscript ▌良い例 19 <head> <script src="jquery.js"></script> <script
src=”main.js" async defer></script> </head> <body> <h1>We are Hiring!</h1> <h2 id="message"></h2> </body> 読み込み完了 大事なことは表示される レンダリングをブロックしないよう非同期で読み込もう!
20.
5. なんとなくheadにscript ▌その他の手法 20 8章 DOMとブラウザのパターン 8.6
JavaScriptの配備 8.6.1 スクリプトをまとめる 8.6.2 ミニファイする、あるいは圧縮する 8.6.3 Expiresヘッダ 8.6.4 CDNを使う 8.7 読み込みのための戦略 8.7.1 script要素をどこに書くか 8.7.2 HTTPのチャンク形式 8.7.3 script要素を動的にしてダウンロードのブロッキングを回避する 8.7.4 遅延読み込み 8.7.5 オンデマンドで読み込む 8.7.6 JavaScriptを事前に読み込む
21.
6. キャッシュを有効化してるのに上書き保存 ▌悪い例 21 location ~
.png$ { expires 1d; add_header "Cache-Control" "86400"; } <img src="logo.png" style="width:410px; height:162px;" /> <img src="logo.png" style="width:431px; height:101px;" /> 画面を再表示(再読み込みはしない) ブラウザはURL単位でキャッシュする JavaScriptで同じことが起きると正常に動作しない場合もある
22.
6. キャッシュを有効化してるのに上書き保存 ▌良い例(1) 22 location ~
.png$ { expires 1d; add_header "Cache-Control" "86400"; } <img src="logo.png?20130801" style="width:410px; height:162px;"/> <img src="logo.png?20160401" style="width:431px; height:101px;"/> バージョン情報をQueryStringに乗せよう! 画面を再表示(再読み込みはしない)
23.
6. キャッシュを有効化してるのに上書き保存 ▌良い例(2) 23 location ~
.png$ { expires 1d; add_header "Cache-Control" "86400"; } <img src="logo.png" style="width:410px; height:162px;" /> ファイル名を変えよう! 画面を再表示(再読み込みはしない) <img src="logo_new.png" style="width:431px; height:101px;" />
24.
6. キャッシュを有効化してるのに上書き保存 ▌良い例(3) HTTPリクエストはとりあえず送る ファイルに更新があれば200を返す ファイルに更新がなければ304を返す 304が返ってきたらブラウザキャッシュを使う 24 location ~
.png$ { etag on; if_modified_since exact; } ※nginxのデフォルト設定 HTTPリクエストを減らすのを諦めよう!
25.
7. なんでもかんでもキャッシュOFF ▌悪い例 25 location /
{ expires -1; add_header "Cache-Control" "no-cache"; etag off; if_modified_since off; } 1.27s 静的コンテンツもすべて取得してしまっている
26.
7. なんでもかんでもキャッシュOFF ▌良い例 26 location ~
.php$ { expires -1; add_header "Cache-Control" "no-cache"; etag off; if_modified_since off; } 動的コンテンツだけキャッシュOFFにしよう! 720ms
27.
まとめ 27
28.
選ばれし7つのアンチパターン 1. 大きな画像をサイズ指定で縮小表示 2. サイズを指定せずに画像表示 3.
Retina対策していない画像表示 4. JavaScriptファイルをそのまま公開 5. なんとなくheadにscript 6. キャッシュを有効化してるのに上書き保存 7. なんでもかんでもキャッシュOFF 28
29.
どれもちょっとしたことなんですが ▌ちょっとしたことでユーザーの満足度を下げるのはもったいない ▌ちょっとしたことに気を配ってるサービスってなんかイケてる ▌ちょっとだけ手間をかけて、良いUXを提供しましょう! 29
30.
宣伝 30
31.
技術勉強会の会場貸しやってます ▌国内 3 拠点を繋いだ同時開催が可能です ▌Facebook
やメールなど、どんな手段でも良いのでサイボウズのエンジニ アまでお気軽にご相談ください 31 大阪:35名 東京:40名 松山:40名
32.
技術ブログやってます ▌アーキテクチャ刷新プロジェクト「Neco」の紹介 ▌React や Selenium
などの勉強会開催レポート ▌Java や JVM にまつわる運用障害の調査について ▌などなど、毎月約 5 本の技術系記事を投稿中 32 http://blog.cybozu.io
33.
エンジニア採用やってます ▌サイボウズの企業理念 チームワークあふれる「社会」を創る チームワークあふれる「会社」を創る ▌求める人材 「チームの役に立つサービス」を「いろんな人と協力し合うチーム」で開発したい人 ▌インフラからアプリケーションまであらゆる分野で募集中 33 http://cybozu.co.jp/company/job/
34.
ご清聴ありがとうございました! 34 #frontkansai
Editor's Notes
ちなみに、先ほど紹介したkintoneは、Java20万行以上、JavaScript30万行以上で作られています。
主に社会人向け。詳しくはサイボウズHPをご覧ください。
Download now