HTML developers google comspeedpagespeedinsights 4 2000 Windows HTML

  • Slides: 41
Download presentation

Зачем нужна HTML-минификация? //developers. google. com/speed/pagespeed/insights 4

Зачем нужна HTML-минификация? //developers. google. com/speed/pagespeed/insights 4

2000 -е: Windows-приложения для HTML-минификации… • HTML Shrinker - //thepluginsite. com/products/htmlshrinker/index. htm • Absolute

2000 -е: Windows-приложения для HTML-минификации… • HTML Shrinker - //thepluginsite. com/products/htmlshrinker/index. htm • Absolute HTML Compressor - //www. alentum. com/ahc/ • Оптимизатор HTML файлов • HTML Source Cleaner • Anetto HTML Optimize! • HTMLCompact • HTML Code Cleaner - //www. htmlcodecleaner. com-http. com/ • HTMLOpt - //www. alonewolfsoft. ru/html_optimizer. htm • Absolute HTML Optimizer 6

2010 -е: Кроссплатформенные библиотеки для HTML-минификации 1. Html. Compressor Сергея Ковальчука (Java) - //github.

2010 -е: Кроссплатформенные библиотеки для HTML-минификации 1. Html. Compressor Сергея Ковальчука (Java) - //github. com/serg 472/htmlcompressor 2. HTML Minifier Юрия Зайцева (Node. js) - //github. com/kangax/html-minifier 8

Модули Web. Markup. Min Ядро ASP. NET-расширения • Web. Markup. Min. Core • Web.

Модули Web. Markup. Min Ядро ASP. NET-расширения • Web. Markup. Min. Core • Web. Markup. Min. Asp. Net. Common Внешние CSS- и JSминикаторы • Web. Markup. Min. Asp. Net 4. Common • Web. Markup. Min. Ms. Ajax • Web. Markup. Min. Asp. Net. Core 2 • Web. Markup. Min. Yui • Web. Markup. Min. Asp. Net 4. Http. Modules • Web. Markup. Min. NUglify • Web. Markup. Min. Asp. Net 4. Web. Forms • Web. Markup. Min. Asp. Net. Core 1 • Web. Markup. Min. Asp. Net 4. Mvc 14

Пример использования класса Html. Minifier string html. Input = File. Read. All. Text("input. html");

Пример использования класса Html. Minifier string html. Input = File. Read. All. Text("input. html"); var html. Minifier = new Html. Minifier(); Markup. Minification. Result result = html. Minifier. Minify(html. Input, generate. Statistics: true); if (result. Errors. Count == 0) { if (result. Statistics != null) { Console. Write. Line("Saved: {0: N 2}%", result. Statistics. Saved. In. Percent); } Console. Write. Line("Minified content: {0}{0}{1}", Environment. New. Line, result. Minified. Content); } else { IList<Minification. Error. Info> errors = result. Errors; Console. Write. Line("Found {1} error(s): {0}", Environment. New. Line, errors. Count); foreach (var error in errors) { Console. Write. Line("Line {1}, Column {2}: {3}{0}", Environment. New. Line, error. Line. Number, error. Column. Number, error. Message); } } 16

Пример подключения внешних минификаторов … using Web. Markup. Min. NUglify; … ICss. Minifier nuglify.

Пример подключения внешних минификаторов … using Web. Markup. Min. NUglify; … ICss. Minifier nuglify. Css. Minifier = new NUglify. Css. Minifier(); IJs. Minifier nuglify. Js. Minifier = new NUglify. Js. Minifier(); var html. Minifier = new Html. Minifier(css. Minifier: nuglify. Css. Minifier, js. Minifier: nuglify. Js. Minifier); … 17

ASP. NET Core расширения 18

ASP. NET Core расширения 18

Пример настройки и подключения в ASP. NET Core… Файл Startup. cs: … using Web.

Пример настройки и подключения в ASP. NET Core… Файл Startup. cs: … using Web. Markup. Min. Asp. Net. Core 2; … public void Configure. Services(IService. Collection services) { … services. Add. Web. Markup. Min(options => { options. Allow. Minification. In. Development. Environment = true; options. Allow. Compression. In. Development. Environment = true; }). Add. Html. Minification(). Add. Http. Compression() ; services. Add. Mvc(). Set. Compatibility. Version(…); } … 19

…Пример настройки и подключения в ASP. NET Core Файл Startup. cs: … using Web.

…Пример настройки и подключения в ASP. NET Core Файл Startup. cs: … using Web. Markup. Min. Asp. Net. Core 2; … public void Configure(IApplication. Builder app, IHosting. Environment env) { … app. Use. Static. Files(); app. Use. Cookie. Policy(); app. Use. Web. Markup. Min(); app. Use. Mvc(); } … 20

Пример настройки в Web Forms и MVC… Файл App_Start/Web. Markup. Min. Config. cs: …

Пример настройки в Web Forms и MVC… Файл App_Start/Web. Markup. Min. Config. cs: … using Web. Markup. Min. Asp. Net 4. Common; … public class Web. Markup. Min. Config { public static void Configure(Web. Markup. Min. Configuration configuration) { configuration. Allow. Minification. In. Debug. Mode = true; configuration. Allow. Compression. In. Debug. Mode = true; … } } … 22

…Пример настройки в Web Forms и MVC Файл Global. asax. cs: … using System.

…Пример настройки в Web Forms и MVC Файл Global. asax. cs: … using System. Web. Routing; using Web. Markup. Min. Asp. Net 4. Common; … public class Mvc. Application : System. Web. Http. Application { protected void Application_Start() { … Route. Config. Register. Routes(Route. Table. Routes); Web. Markup. Min. Configure(Web. Markup. Min. Configuration. Instance); … } } … 23

Пример настройки в Web Pages Файл _App. Start. cshtml: … @using Web. Markup. Min.

Пример настройки в Web Pages Файл _App. Start. cshtml: … @using Web. Markup. Min. Asp. Net 4. Common … @{ Web. Markup. Min. Configuration configuration = Web. Markup. Min. Configuration. Instance; configuration. Allow. Minification. In. Debug. Mode = true; configuration. Allow. Compression. In. Debug. Mode = true; … } 24

Пример подключения HTTP-модулей Файл Web. config: <? xml version="1. 0" encoding="utf-8"? > <configuration> …

Пример подключения HTTP-модулей Файл Web. config: <? xml version="1. 0" encoding="utf-8"? > <configuration> … <system. web. Server> <modules> … <add name="Html. Minification. Module" type="Web. Markup. Min. Asp. Net 4. Http. Modules. Html. Minification. Module, Web. Markup. Min. Asp. Net 4. Http. Modules" /> <add name="Http. Compression. Module" type="Web. Markup. Min. Asp. Net 4. Http. Modules. Http. Compression. Module, Web. Markup. Min. Asp. Net 4. Http. Modules" /> … </modules> … </system. web. Server> … </configuration> 25

Пример подключения в Web Forms Файл Code Behind ASPX-страницы: … using Web. Markup. Min.

Пример подключения в Web Forms Файл Code Behind ASPX-страницы: … using Web. Markup. Min. Asp. Net 4. Web. Forms; … public partial class About : Minified. And. Compressed. Html. Page { … } … 26

Пример подключения в MVC на уровне действия контроллера Файл контроллера: … using Web. Markup.

Пример подключения в MVC на уровне действия контроллера Файл контроллера: … using Web. Markup. Min. Asp. Net 4. Mvc; … public class Home. Controller : Controller { … [Compress. Content] [Minify. Html] public Action. Result About() { … } … } } … 27

Пример подключения в MVC на уровне всего приложения Файл App_Start/Filter. Config. cs: … using

Пример подключения в MVC на уровне всего приложения Файл App_Start/Filter. Config. cs: … using Web. Markup. Min. Asp. Net 4. Mvc; … public class Filter. Config { public static void Register. Global. Filters(Global. Filter. Collection filters) { … filters. Add(new Compress. Content. Attribute()); filters. Add(new Minify. Html. Attribute()); … } } … 28

Минификация без обработки CSS- и JS-кода Сайт Оригинальный Размер после Экономия с размер минификации

Минификация без обработки CSS- и JS-кода Сайт Оригинальный Размер после Экономия с размер минификации Gzip-сжатия минификации без учета учетом Gzip и Gzip-сжатия afisha. ru 242, 55 203, 55 31, 12 29, 68 16, 08% 4, 63% concert. ru 208, 93 131, 88 16, 43 13, 98 36, 88% 14, 91% dodois. com 42, 29 26, 36 7, 28 5, 98 37, 68% 17, 85% finam. ru 723, 71 694, 76 79, 50 77, 81 4, 00% 2, 12% intourist. ru 134, 25 111, 70 15, 19 13, 76 16, 80% 9, 44% moskva. mts. ru 191, 29 150, 90 24, 39 21, 91 21, 11% 10, 15% ozon. ru 123, 03 115, 02 25, 03 24, 34 6, 51% 2, 75% pochtabank. ru 119, 01 105, 99 21, 01 19, 57 10, 94% 6, 84% renins. com 38, 07 28, 58 6, 20 5, 44 24, 93% 12, 26% rusnano. com 46, 95 29, 09 8, 29 7, 07 38, 04% 14, 78% 21, 30% 9, 57% * - размеры веб-страниц указаны в килобайтах 30

Минификация с обработкой CSS- и JS-кода Сайт Оригинальный Размер после Экономия с размер минификации

Минификация с обработкой CSS- и JS-кода Сайт Оригинальный Размер после Экономия с размер минификации Gzip-сжатия минификации без учета учетом Gzip и Gzip-сжатия afisha. ru 242, 55 193, 31 31, 12 28, 59 20, 30% 8, 15% concert. ru 208, 93 130, 54 16, 43 13, 72 37, 52% 16, 49% dodois. com 42, 29 26, 04 7, 28 5, 87 38, 43% 19, 34% finam. ru 723, 71 675, 58 79, 50 76, 81 6, 65% 3, 38% intourist. ru 134, 25 111, 48 15, 19 13, 64 16, 96% 10, 20% moskva. mts. ru 191, 29 137, 43 24, 39 20, 37 28, 15% ozon. ru 123, 03 109, 46 25, 03 23, 52 11, 03% 16, 49% +7, 04% 6, 02% pochtabank. ru 119, 01 97, 32 21, 01 19, 17 18, 23% renins. com 38, 07 27, 44 6, 20 5, 17 27, 93% 8, 76% +7, 29% 16, 69% rusnano. com 46, 95 28, 47 8, 29 6, 87 39, 36% 17, 13% 24, 46% +3, 16% 12, 27% +2, 70% * - размеры веб-страниц указаны в килобайтах 31

Web. Markup. Min Online 32

Web. Markup. Min Online 32

Программное обеспечение Проекты Мэдса Кристенсена • Web Essentials 2013 - //github. com/madskristensen/Web. Essentials 2013

Программное обеспечение Проекты Мэдса Кристенсена • Web Essentials 2013 - //github. com/madskristensen/Web. Essentials 2013 • Web Essentials 2015 - //github. com/madskristensen/Web. Essentials 2015 • Bundler and Minifier - //github. com/madskristensen/Bundler. Minifier • Mini. Blog - //github. com/madskristensen/Mini. Blog • Miniblog. Core - //github. com/madskristensen/Miniblog. Core • Static. Web. Helper - //github. com/madskristensen/Static. Web. Helper Другие проекты • Wyam - //wyam. io • Pagespeed Tools for Nop. Commerce - //www. foxnetsoft. com/noppagespeedtools 34

Сайты мировых брендов www. sway. com www. kempinski. com www. giant-bicycles. com www. swedishmatch.

Сайты мировых брендов www. sway. com www. kempinski. com www. giant-bicycles. com www. swedishmatch. com www. fxpro. com 35

Альтернативные решения HTML-минификаторы • Zeta. Producer. Html. Compressor - //github. com/Uwe. Keim/Zeta. Producer. Html.

Альтернативные решения HTML-минификаторы • Zeta. Producer. Html. Compressor - //github. com/Uwe. Keim/Zeta. Producer. Html. Compressor • Html. Compressor. Core - //github. com/joshcomley/Html. Compressor. Core • NUglify Александра Мютэля - //github. com/xoofx/NUglify Минификаторы представлений ASP. NET • Meleze. Web - //github. com/meleze/Meleze. Web • Razor. Html. Minifier. Mvc 5 - //github. com/tompazourek/Razor. Html. Minifier. Mvc 5 • HTML Minifier Дина Хьюма - //github. com/deanhume/html-minifier 37

Ссылки 1. Проект Web. Markup. Min на Git. Hub - //github. com/Taritsyn/Web. Markup. Min

Ссылки 1. Проект Web. Markup. Min на Git. Hub - //github. com/Taritsyn/Web. Markup. Min 2. Документация Web. Markup. Min - //github. com/Taritsyn/Web. Markup. Min/wiki 3. Сайт Web. Markup. Min Online - //webmarkupmin. apphb. com 4. А. Лебедев. Паранойя оптимизатора //web. archive. org/web/20020615132812/http: //www. artlebedev. ru/kovodstvo/paragraph s/17. html 5. Ю. Зайцев. Optimizing HTML - //perfectionkills. com/optimizing-html/ 6. Э. Лок. HTML minification using Web. Markup. Min in ASP. NET Core - //andrewlock. net/htmlminification-using-webmarkupmin-in-asp-net-core/ 7. М. Кристенсен. Effects of GZipping vs. minifying HTML files //madskristensen. net/blog/effects-of-gzipping-vs-minifying-html-files 40