SlideShare a Scribd company logo
超。光速 網站最佳化實戰
工欲善其事,必先利其器。
2013/03/30
http://mvc.tw 2
http://pabblogger.files.wordpress.com/2010/08/166g75t.jpg
天下武功無堅不摧,唯快不破
http://mvc.tw
歡迎來到 世代
3
光
http://mvc.tw
 桌機速度越來越快
歡迎來到 世代
4
光
http://mvc.tw
 桌機速度越來越快
 有線網路「妹」多到用不完
歡迎來到 世代
5
光
http://mvc.tw
 桌機速度越來越快
 有線網路「妹」多到用不完
 連手機都四核心了
歡迎來到 世代
6
光
http://mvc.tw
 桌機速度越來越快
 有線網路「妹」多到用不完
 連手機都四核心了
 網路、硬體都突飛猛進的世代下
歡迎來到 世代
7
光
http://mvc.tw
 桌機速度越來越快
 有線網路「妹」多到用不完
 連手機都四核心了
 網路、硬體都突飛猛進的世代下
歡迎來到 世代
8
光
我們為什麼還要自己最佳化網站?
http://mvc.tw
 行動裝置的瀏覽量已經超越桌機
歡迎來到 世代
9
註1
註1:http://www.nownews.com/2013/03/05/320-2909868.htm
http://mvc.tw
 行動裝置的瀏覽量已經超越桌機
 行動裝置上網速度很淒涼(平均只有1.26Mbps)
歡迎來到 世代
10
註1
註2
註1:http://www.nownews.com/2013/03/05/320-2909868.htm
註2:http://www.eprice.com.tw/mobile/talk/102/4786327/1/
http://mvc.tw
 行動裝置的瀏覽量已經超越桌機
 行動裝置上網速度很淒涼(平均只有1.26Mbps)
 不適當的網頁技術
歡迎來到 世代
11
註1
註2
註1:http://www.nownews.com/2013/03/05/320-2909868.htm
註2:http://www.eprice.com.tw/mobile/talk/102/4786327/1/
http://mvc.tw
歡迎來到 世代
12
1
2
3
4
http://mvc.tw
 行動裝置的瀏覽量已經超越桌機
 行動裝置上網速度很淒涼(平均只有1.26Mbps)
 不適當的網頁技術
歡迎來到 世代
13
註1:http://www.nownews.com/2013/03/05/320-2909868.htm
註2:http://www.eprice.com.tw/mobile/talk/102/4786327/1/
註1
註2
http://mvc.tw
 行動裝置的瀏覽量已經超越桌機
 行動裝置上網速度很淒涼(平均只有1.26Mbps)
 不適當的網頁技術
 作業系統的效能大幅提升導致於網站感覺慢很多
歡迎來到 世代
14
自己動手樂趣多?
註1:http://www.nownews.com/2013/03/05/320-2909868.htm
註2:http://www.eprice.com.tw/mobile/talk/102/4786327/1/
註1
註2
http://mvc.tw
歡迎來到 世代
15
最佳化後原始網站
臃腫的內容 纖細的內容
http://mvc.tw
歡迎來到 世代
16
最佳化後原始網站
纖細的內容
http://mvc.tw
歡迎來到 世代
17
最佳化後原始網站
http://mvc.tw
 減少 HTTP 請求
網站最佳化理論
18
http://mvc.tw
 減少 HTTP 請求
 降低靜態檔案大小
網站最佳化理論
19
http://mvc.tw
 減少 HTTP 請求
 降低靜態檔案大小
 壓縮圖片
網站最佳化理論
20
http://mvc.tw
 減少 HTTP 請求
 降低靜態檔案大小
 壓縮圖片
 讓DOM簡單化
網站最佳化理論
21
http://mvc.tw
 減少 HTTP 請求
 降低靜態檔案大小
 壓縮圖片
 讓DOM簡單化
 移除不必要的元素
網站最佳化理論
22
http://mvc.tw
 減少 HTTP 請求
 降低靜態檔案大小
 壓縮圖片
 讓DOM簡單化
 移除不必要的元素
 不要在開頭放置 Javascript
網站最佳化理論
23
http://mvc.tw
 減少 HTTP 請求
 降低靜態檔案大小
 壓縮圖片
 讓DOM簡單化
 移除不必要的元素
 不要在開頭放置 Javascript
 使用CDN
網站最佳化理論
24
http://mvc.tw
網站最佳化理論
25
http://mvc.tw
 http://mvc.tw/000e (webpagetest)
26
推薦線上測速網站
http://mvc.tw
 http://mvc.tw/000e (webpagetest)
27
推薦線上測速網站
http://mvc.tw
由工具開始,進而瞭解理論
28
http://mvc.tw
由工具開始,進而瞭解理論
29
http://mvc.tw
 靜態圖片最佳化 Image Optimizer
先從無腦的來
30http://mvc.tw/000I
http://mvc.tw
 使用前使用後的圖片
先從無腦的來(Image Optimizer)
31
http://mvc.tw
 使用前使用後的圖片
先從無腦的來(Image Optimizer)
32
http://mvc.tw
先從無腦的來(Image Optimizer)
33
http://mvc.tw
 再看一次使用前使用後的圖片
先從無腦的來(Image Optimizer)
34
http://mvc.tw
 ASP.NET MVC4 內建
 Microsoft AJAX Minifier
 Web Essentials
靜態檔案最佳化
35
靜態檔案最佳化-ASP.NET MVC4 內建
36DEV309-BundlingAndMinification
http://mvc.tw
 ASP.NET MVC4 內建
 Microsoft AJAX Minifier
 Web Essentials
靜態檔案最佳化
37
http://mvc.tw
 ASP.NET MVC4 內建
 Microsoft AJAX Minifier
 http://demo.tc/Post/621
 Web Essentials
靜態檔案最佳化
38
靜態檔案最佳化-Microsoft AJAX Minifier
39Microsoft AJAX Minifier
http://mvc.tw
 ASP.NET MVC4 內建
 Microsoft AJAX Minifier
 Web Essentials
靜態檔案最佳化
40
靜態檔案最佳化-Web Essentials
41Web EssentialsTest
http://mvc.tw
 Stitches 線上服務(HTML5)
CSS Sprite技巧
42
註1:http://mvc.tw/000K
註1
CSS Sprite- Stitches
43
CSS Sprite- Stitches
44
CSS Sprite- Stitches
45
CSS Sprite- Stitches
46CSSSprite
http://mvc.tw
 Stitches 線上服務(HTML5)
 Sprite and Image Optimization Preview 4
CSS Sprite技巧
47
註1:http://mvc.tw/000K
註2:http://mvc.tw/000J
註1
註2
Sprite and Image Optimization Preview 4
48
CSS Sprite-
49
Sprite and Image Optimization Preview 4
CSSSprite
http://mvc.tw
 Gzip
 IIS 設定
 Web.Config
 SDCH (Shared Dictionary Compression over HTTP)
 目前只有Chrome支援的壓縮
壓縮
50
註1:http://mvc.tw/000Z
Gzip IIS 設定
51
Gzip IIS 設定
52
http://mvc.tw
 Gzip
 IIS 設定
 Web.Config
 SDCH (Shared Dictionary Compression over HTTP)
 目前只有Chrome支援的壓縮
壓縮
53
註1:http://mvc.tw/000Z
http://mvc.tw
<system.webServer>
<urlCompression doStaticCompression="true"
doDynamicCompression="true" />
</system.webServer>
壓縮 – Gzip – Web.config
54
http://mvc.tw
 Gzip
 IIS 設定
 Web.Config
 SDCH (Shared Dictionary Compression over HTTP)
 目前只有Chrome支援的壓縮
壓縮
55
http://mvc.tw
 IIS設定靜態、動態快取
 Web.config 也可以設定
 Output cache
 CacheProfile
 Ram Cache
 WebCache
 RunTime Cache
快取
56
快取 IIS 設定
57
快取 IIS 設定
58
http://mvc.tw
<system.webServer>
<caching>
<profiles>
<add extension=".gif" policy="CacheUntilChange"
kernelCachePolicy="CacheUntilChange" />
<add extension=".js" policy="CacheUntilChange"
kernelCachePolicy="CacheUntilChange" />
</profiles>
</caching>
</system.webServer>
快取 – Web.config
59
http://mvc.tw
 IIS設定靜態、動態快取
 Web.config 也可以設定
 Output cache
 CacheProfile
 Ram Cache
 WebCache
 RunTime Cache
快取
60
61
快取 – Output Cache
cacheSample
http://mvc.tw
 IIS設定靜態、動態快取
 Web.config 也可以設定
 Output cache
 CacheProfile
 Ram Cache
 WebCache
 RunTime Cache
快取
62
63
快取 – WebCache
cacheSample
http://mvc.tw
 CSS放上(</Head>前)、JS放下(</Body>前)
 優點:不用等JS
 缺點:第一次進入網站會有很明顯的三重變化(白、元素、JS)
本質上的調整
64
http://mvc.tw
 CSS放上(</Head>前)、JS放下(</Body>前)
 優點:不用等JS
 缺點:第一次進入網站會有很明顯的三重變化(白、元素、JS)
 HTML移除註解
 優點:爽度很高
 缺點:其實幫助不大…
本質上的調整
65
• 天瓏
• 博客來
• PCHOME
• 讀冊生活
• 金石堂
• 誠品
謝謝各位
h t t p : / / m v c . t w
twMVC#08 | 超。光速 網站最佳化實戰
別走,還沒完…
雖然沒人喊「安哥」但還是有最後一首…
http://mvc.tw
 Image resize
 width=‘100’ 或 style=‘width:100px;’這樣調毫無意義
 WebImage
圖片的再優化
71
註1:http://mvc.tw/000J
註2:http://mvc.tw/000K
圖片的再優化-WebImage
72ImageReSize
http://mvc.tw
 Image resize
 width=‘100’ 或 style=‘width:100px;’這樣調毫無意義
 WebImage
 或是ImageResize
圖片的再優化
73
註1:http://mvc.tw/000a
註1
圖片的再優化-ImageReSize
74ImageReSize
http://mvc.tw
圖片的再優化-ImageResize
75
 基本功能
http://mvc.tw
圖片的再優化-ImageResize
76
 基本功能
 授權費用
77
工具一定有風險,不懂原理有賺有賠,課程威力示範不保證工具之最低收益,開發者使用前應詳閱工具公開說明書。
聯絡資訊
Blog: http://demo.tc
twMVC: http://mvc.tw
G+: http://demo.tc/+
FB: http://fb.me/demo.fan
Plurk: http://plurk.com/demoshop
參考資料
• Javascript source map
• http://mvc.tw/000U
• Microsoft Ajax Minifier 將 js 和 css 檔案最小化
• http://demo.tc/Post/621
• ASPNET_Image_Optimization_Preview4
• http://mvc.tw/000W
• http://mvc.tw/000X
• IIS 壓縮設定
• http://mvc.tw/000Z
謝謝各位
• 本投影片所包含的商標與文字皆屬原著作者所有。
• 本投影片使用的圖片皆從網路搜尋。
• 本著作係採用 Creative Commons 姓名標示-非商業性-相同方式分享 3.0 台灣 (中華民國) 授權條款授權。
h t t p : / / m v c . t w

More Related Content

PDF
超。光速 網站最佳化實戰 -twMVC#8
PDF
twMVC#19 | opserver監控服務的解決
PDF
ASP.NET MVC Web API -twMVC#8
PDF
twMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIS
PDF
輕鬆上手Asp.net web api 2.1-twMVC#14
PDF
twMVC#21 | 你所不知道的 Visual Studio
PDF
20130823微軟雲端平台開發者日
PPTX
twMVC#31沒有 hdd 的網站重構 webform to mvc
超。光速 網站最佳化實戰 -twMVC#8
twMVC#19 | opserver監控服務的解決
ASP.NET MVC Web API -twMVC#8
twMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIS
輕鬆上手Asp.net web api 2.1-twMVC#14
twMVC#21 | 你所不知道的 Visual Studio
20130823微軟雲端平台開發者日
twMVC#31沒有 hdd 的網站重構 webform to mvc

What's hot (20)

PPT
Paveo Tweak WordPress
PDF
前端工程師與室內裝修師傅的相似之處-twMVC#16
PDF
動手打造 application framework-twMVC#15
PDF
twMVC#29 -Learning Machine Learning with Movie Recommendation
PDF
開發的效能與效率-twMVC#15
PDF
一小時可以打造什麼服務Plus twMVC#18
PDF
Asp.net mvc 從無到有 -twMVC#2
PDF
twMVC#22 | 一個微信專案從0到.000的效能調教之路
PDF
webpack 入門
PDF
twMVC#29 | 當.Net Core 遇到AWS Lambda
PDF
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
PDF
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
PDF
twMVC#26 | Redis資料型別與場景的連結
PPTX
twMVC#31網站上線了然後呢
PDF
twMVC#19 | 微信公眾平台申請與wechat api 開發血淚史
PDF
twMVC#43 Visual Studio 2022 新功能拆解
PDF
twMVC#30 | 你應該瞭解的 container-on-azure-二三事
PDF
專案分層架構 twMVC#18
PPTX
MVC實戰分享 分頁與排序相關技巧-tw mvc#13
PDF
twMVC#44 讓我們用 k6 來進行壓測吧
Paveo Tweak WordPress
前端工程師與室內裝修師傅的相似之處-twMVC#16
動手打造 application framework-twMVC#15
twMVC#29 -Learning Machine Learning with Movie Recommendation
開發的效能與效率-twMVC#15
一小時可以打造什麼服務Plus twMVC#18
Asp.net mvc 從無到有 -twMVC#2
twMVC#22 | 一個微信專案從0到.000的效能調教之路
webpack 入門
twMVC#29 | 當.Net Core 遇到AWS Lambda
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
twMVC#26 | Redis資料型別與場景的連結
twMVC#31網站上線了然後呢
twMVC#19 | 微信公眾平台申請與wechat api 開發血淚史
twMVC#43 Visual Studio 2022 新功能拆解
twMVC#30 | 你應該瞭解的 container-on-azure-二三事
專案分層架構 twMVC#18
MVC實戰分享 分頁與排序相關技巧-tw mvc#13
twMVC#44 讓我們用 k6 來進行壓測吧
Ad

Similar to twMVC#08 | 超。光速 網站最佳化實戰 (20)

PPT
Html5
PPTX
一個微信專案從0到000的效能調教
PDF
為瞬間巨量做好準備 20180726
PDF
VMware Rhel5 Oracle10g Rac
PPT
高性能网站最佳实践
PDF
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
KEY
Beyond rails server
PDF
Node.js 進攻桌面開發
PDF
HPE SimpliVity install mgmt guide 201907-01 (Taiwan-Chinese) ;HPE SimpliVity ...
PPT
腾讯大讲堂08 可扩展web架构探讨
PPT
为什么上网浏览要用Shadowsocks?
PDF
-Nginx book
PPTX
Webify 一键部署
PDF
美团技术团队 - KVM性能优化
PPT
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
PDF
2012 java two-desktop-appliction-using-j-ruby-with-swt
 
PPT
构建基于Lamp的中型网站架构
PDF
BAS010_虛擬化基礎_v190330
PPT
BAS010_虛擬化基礎_v190330 (View online)
PPTX
twMVC#01 | ASP.NET MVC 的第一次親密接觸
Html5
一個微信專案從0到000的效能調教
為瞬間巨量做好準備 20180726
VMware Rhel5 Oracle10g Rac
高性能网站最佳实践
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
Beyond rails server
Node.js 進攻桌面開發
HPE SimpliVity install mgmt guide 201907-01 (Taiwan-Chinese) ;HPE SimpliVity ...
腾讯大讲堂08 可扩展web架构探讨
为什么上网浏览要用Shadowsocks?
-Nginx book
Webify 一键部署
美团技术团队 - KVM性能优化
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
2012 java two-desktop-appliction-using-j-ruby-with-swt
 
构建基于Lamp的中型网站架构
BAS010_虛擬化基礎_v190330
BAS010_虛擬化基礎_v190330 (View online)
twMVC#01 | ASP.NET MVC 的第一次親密接觸
Ad

More from twMVC (20)

PDF
twMVC#51 以平台工程重新思考系統設計 - 以 Batch System 為例封面
PDF
twMVC#51-GitHub Copilot 徹底改變開發模式,探索 AI 驅動的智慧程式碼協作
PDF
twMVC#50 微服務上線後的救贖
PDF
twMVC 47_Elastic APM 的兩三事
PDF
twMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
PDF
.NET 7 家族新成員: Microsoft Orleans v7
PDF
twMVC#46 一探 C# 11 與 .NET 7 的神奇
PDF
twMVC#44 如何測試與保護你的 web application with playwright
PDF
twMVC#43 YARP
PDF
twMVC#43 C#10 新功能介紹
PDF
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
PDF
twMVC#42 Azure IoT Hub for Smart Factory
PDF
twMVC#42 Windows容器導入由0到1
PDF
twMVC#42 讓我們用一種方式來開發吧
PDF
twMVC#41 hololens2 MR
PPTX
twMVC#41 The journey of source generator
PDF
twMVC#38 How we migrate tfs to git(using azure dev ops)
PDF
twMVC#36C#的美麗與哀愁
PDF
twMVC#36.NetCore 3快速看一波
PDF
twMVC#36讓 Exceptionless 存管你的 Log
twMVC#51 以平台工程重新思考系統設計 - 以 Batch System 為例封面
twMVC#51-GitHub Copilot 徹底改變開發模式,探索 AI 驅動的智慧程式碼協作
twMVC#50 微服務上線後的救贖
twMVC 47_Elastic APM 的兩三事
twMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
.NET 7 家族新成員: Microsoft Orleans v7
twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#44 如何測試與保護你的 web application with playwright
twMVC#43 YARP
twMVC#43 C#10 新功能介紹
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Windows容器導入由0到1
twMVC#42 讓我們用一種方式來開發吧
twMVC#41 hololens2 MR
twMVC#41 The journey of source generator
twMVC#38 How we migrate tfs to git(using azure dev ops)
twMVC#36C#的美麗與哀愁
twMVC#36.NetCore 3快速看一波
twMVC#36讓 Exceptionless 存管你的 Log

twMVC#08 | 超。光速 網站最佳化實戰