
2012 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдореИрдВ MSDeveloper.RU рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП ASP.NET MVC рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, 2 рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рдЧрдП: "рдЬреЗрдПрд╕ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдВрдкреАрдбрд╝рди" рдФрд░ "рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрдХ" , рд▓реЗрдХрд┐рди рдореЗрд░реА рдпреЛрдЬрдирд╛ рдПрдХ рдФрд░ 2 рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдереА: рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдФрд░ рджреВрд╕рд░рд╛ HTML рдорд╛рд░реНрдХрдЕрдк рдФрд░ рдЬреАрдЬрд╝рд┐рдк / рдбрд┐рдлреНрд▓реЗрдХреНрд╢рди рд╕рдВрдкреАрдбрд╝рди рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рд╕рдВрдкреАрдбрд╝рди) рдЖрдЧреЗ рдмрд╕ HTTP рд╕рдВрдкреАрдбрд╝рди)ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЦрд╛рд▓реА рд╕рдордп рдХреА рдХрдореА (рдЙрд╕ рдкрд▓ рдореЗрдВ, рдореИрдВ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЪрд▓рд╛ рд░рд╣рд╛ рдерд╛) рдФрд░ рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдорд╛рдкрди рдХреЗ рдХрд╛рд░рдг рдЗрди рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрд╛ред
рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВрдиреЗ HTML рдорд╛рд░реНрдХрдЕрдк рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рд▓реМрдЯрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдереЛрдбрд╝рд╛ рд╢реЛрдз рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ .NET рдХреЗ рддрд╣рдд рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдкреВрд░реНрдг HTML HTML рдиреНрдпреВрдирддрдо рдирд╣реАрдВ рд╣реИрдВред рд╕рднреА рдореМрдЬреВрджрд╛ .NET рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ 2 рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ: рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ HTML рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡реЗ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рд╕реЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ .NET рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ HTML рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕ рдкрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
HTML рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдиреНрдпреВрдирддрдо
рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ HTML рдиреНрдпреВрдирддрдордХрд░рдг рдХреЗ рд▓рдЧрднрдЧ 15 рд╕рд╛рд▓ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдФрд░ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЯреВрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рд▓реЛрдХрдкреНрд░рд┐рдп рдзрд╛рд░рдгрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, HTML рдиреНрдпреВрдирддрдо рддрдХрдиреАрдХ, рд╕рдорд╛рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдХрдиреАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджреАред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 1998 рдХреЗ рдЕрдВрдд рдореЗрдВ, рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ "рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдкреИрд░рд╛рдиреЛрдЗрдпрд╛" рдХреЗ 17 рд╡реЗрдВ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдЖрд░реНрдЯреЗрдо рд▓реЗрдмреЗрджреЗрд╡ рдиреЗ HTML рдХреЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред
2000 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рддрдХ, рдХрдИ HTML рдиреНрдпреВрдирддрдо рддрдХрдиреАрдХреЗрдВ рдЬреЛ рдЖрдЬ рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдереАрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдЮрд╛рдд рдереАрдВ:
- рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк (рд╕реНрдкреЗрд╕, рдЯреИрдм рдФрд░ рд▓рд╛рдЗрди рдмреНрд░реЗрдХ) рдХреЛ рд╣рдЯрд╛рдирд╛
- HTML рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдирд┐рдХрд╛рд▓рдирд╛
- рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдЕрд╡рд╛рдВрдЫрд┐рдд рдЙрджреНрдзрд░рдг рдирд┐рдХрд╛рд▓реЗрдВ
- рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрдВрддрд┐рдо рдЯреИрдЧ рд╣рдЯрд╛рдирд╛ (рдЙрджрд╛ред
</p>
рдФрд░ </li>
)
рд▓реЗрдХрд┐рди рдЦрддрд░рдирд╛рдХ рддрдХрдиреАрдХреЗрдВ рднреА рд╡реНрдпрд╛рдкрдХ рд╣реЛ рдЧрдИ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЧрд▓рдд рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЗрд╕рдХреЗ рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░ рд╕рдХрддреА рд╣реИрдВ:
- рд╣рдЯрд╛рдирд╛
<!DOCTYPE тАж>
рдШреЛрд╖рдгрд╛ - рд▓рдВрдмреЗ рдЯреИрдЧреНрд╕ рдХреЛ рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
<strong>
рдЯреИрдЧреНрд╕ рдХреЛ <b>
рдФрд░ <em>
<i>
рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛)
рдЙрд╕реА рд╕рдордп, рдкрд╣рд▓реЗ HTML рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рд▓рдЧрднрдЧ рдПрдХ рджрд░реНрдЬрди рдлреНрд░реАрд╡реЗрдпрд░ рдФрд░ рд╢реЗрдпрд░рд╡реЗрдпрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдереЗ: HTML рд╢реНрд░рд┐рдВрдХрд░ , рдирд┐рд░рдкреЗрдХреНрд╖ HTML рдХрдВрдкреНрд░реЗрд╕рд░ , HTML рдлрд╝рд╛рдЗрд▓ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░, HTML рд╕реНрд░реЛрдд рдХреНрд▓реАрдирд░, Anetto HTML рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝!, HTMLCompact, HTML рдХреЛрдб рдХреНрд▓реАрдирд░ , HTML рдХреЛрдб , рдирд┐рд░рдкреЗрдХреНрд╖ HTML рдЕрдиреБрдХреВрд▓рдХ, рдЖрджрд┐!
рдЕрдВрдЬреАрд░ред 1. HTML рдлрд╝рд╛рдЗрд▓ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ 1.1.0 - 2000 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ HTML рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░
2000 рдХреЗ рджрд╢рдХ рдХреЗ рдордзреНрдп рддрдХ, XHTML рдорд╛рдирдХ рд╡реНрдпрд╛рдкрдХ рдерд╛, рдЬрд┐рд╕реЗ XML рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ HTML рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЗрди рдирд┐рдпрдореЛрдВ рдиреЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЙрджреНрдзрд░рдг рд╣рдЯрд╛рдиреЗ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдкреНрддрд┐ рдЯреИрдЧ рд╣рдЯрд╛рдиреЗ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛ рджреАред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдЦреНрдд рдПрдХреНрд╕рдПрдЪрдЯреАрдПрдордПрд▓ рдирд┐рдпрдореЛрдВ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝рддреЗ рдереНрд░реВрдкреБрдЯ рдиреЗ рдЗрд╕ рддрдереНрдп рдХреЛ рдЬрдиреНрдо рджрд┐рдпрд╛ рд╣реИ рдХрд┐ HTML рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдзреАрд░реЗ-рдзреАрд░реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИ рд╣реИред
рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореЛрдмрд╛рдЗрд▓ рд╡реЗрдм рдХреА рд╡реГрджреНрдзрд┐ рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдорд╛рдирдХ рдХреЗ рдЖрдЧрдорди рдХреЗ рдХрд╛рд░рдг, рдПрдЪрдЯреАрдПрдордПрд▓ рдЕрдк рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИред HTML5 рдорд╛рдирдХ HTML 4.01 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ HTML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред Google рдХреЗ HTML / CSS рдХреЛрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдЧрд╛рдЗрдб рдФрд░ рдпреВрд░реА рдЬрд╝рд┐рдЯрд╕реЗрд╡ рдХреЗ рд▓реЗрдЦ "рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд┐рдВрдЧ HTML" рдореЗрдВ рдХрдИ рдирдИ рдиреНрдпреВрдирддрдо рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рд╕рдм HTML5 рдХреЗ рд▓рд┐рдП рдЙрдиреНрдореБрдЦ рдирдП рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдПрдЪрдЯреАрдПрдордПрд▓-рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рдЙрджреНрднрд╡ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ред рдлрд┐рд▓рд╣рд╛рд▓, 2 рдиреНрдпреВрдирддрдорд┐рдпреЛрдВ рдиреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИ: рд╕рд░реНрдЧреЗрдИ рдХреЛрд╡рд▓рдЪреБрдХ рдХреА рдПрдЪрдЯреАрдПрдордПрд▓рдХрдВрдкреНрд░реЗрд╕рд░ (рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ) рдФрд░ рдпреВрд░реА рдЬреИрддрд╕реЗрд╡ рдХреА рдПрдХреНрд╕рдкреЗрд░рд┐рдореЗрдВрдЯрд▓ HTML рдорд┐рдирд┐рдлрд╛рдпрд░ (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд┐рдд)ред
рд╡реЗрдм рдорд╛рд░реНрдХрдЕрдк рдЦрдирд┐рдЬ рдкрд░рд┐рдпреЛрдЬрдирд╛
Web Markup Minifier (рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WebMarkupMin) рдмрдирд╛рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ .NET .NET рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзреБрдирд┐рдХ HTML рдиреНрдпреВрдирддрдо рдмрдирд╛рдиреЗ рдФрд░ ASP.NET рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдХрд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред WebMarkupMin рдПрдХ Open Source рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб CodePlex рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рддрд░рдг NuGet рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
HTML рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, WebMarkupMin рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗ XHTML рдФрд░ XML рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рд▓реЗрдЦ HTML рдиреНрдпреВрдирддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ, рдпрд╣ HTML рдиреНрдпреВрдирддрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХреЗрд╡рд▓ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реИ:
- рдХрд░реНрдиреЗрд▓ - WebMarkupMin.Core
- рдмрд╛рд╣рд░реА рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬреЗрдПрд╕ рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░
- WebMarkupMin.MsAjax
- WebMarkupMin.Yui
- ASP.NET рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди
- WebMarkupMin.Web
- WebMarkupMin.Mvc
- WebMarkupMin.WebForms
рдХреЛрд░
WebMarkupMin.Core рдореЙрдбреНрдпреВрд▓ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4.0 рдХреЗ рддрд╣рдд рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ .NET рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: ASP.NET, рд╡рд┐рдВрдбреЛрдЬ рдлреЙрд░реНрдо, WPF рдФрд░ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиред рдЪреВрдВрдХрд┐ рд╕рднреА рдорд╛рд░реНрдХрдЕрдк рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рди рдХреЗрд╡рд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХрд╛ рднреА рдХрдо рд╕реЗ рдХрдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WebMarkupMin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рднрд╛рдЧ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп рд▓реЗрдЦ рдХреЗ рдкрд╛рда рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрд░реЗрдВ)ред
рдорд╛рд░реНрдХрдЕрдк рдиреНрдпреВрдирддрдо
WebMarkupMin.ore рдореЙрдбреНрдпреВрд▓ рдореЗрдВ 3 рдорд╛рд░реНрдХрдЕрдк рдиреНрдпреВрдирддрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- HtmlMinifierред HTML рдФрд░ XHTML рдХреЛрдб рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рддрд╛ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдорд╛рдиреНрдп HTML рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
- XhtmlMinifierред HTML рдФрд░ XHTML рдХреЛрдб рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рддрд╛ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдХ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХреНрд╕рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдирд┐рдпрдореЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
- XmlMinifierред XML рдХреЛрдб рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рддрд╛ рд╣реИред
HtmlMinifier
рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
namespace WebMarkupMin.Example.Console { using System; using System.Collections.Generic; using WebMarkupMin.Core; using WebMarkupMin.Core.Minifiers; using WebMarkupMin.Core.Settings; class Program { static void Main(string[] args) { const string htmlInput = @"<!DOCTYPE html> <html> <head> <meta charset=""utf-8"" /> <title> </title> <link href=""favicon.ico"" rel=""shortcut icon"" type=""image/x-icon"" /> <meta name=""viewport"" content=""width=device-width"" /> <link rel=""stylesheet"" type=""text/css"" href=""/Content/Site.css"" /> </head> <body> <p>- тАж</p> <script src=""http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js""></script> <script>(window.jquery) || document.write('<script src=""/Scripts/jquery-1.9.1.min.js""><\/script>');</script> </body> </html>"; var settings = new HtmlMinificationSettings { WhitespaceMinificationMode = WhitespaceMinificationMode.Aggressive, RemoveHttpProtocolFromAttributes = true, RemoveHttpsProtocolFromAttributes = true }; var htmlMinifier = new HtmlMinifier(settings); MarkupMinificationResult result = htmlMinifier.Minify(htmlInput, generateStatistics: true); if (result.Errors.Count == 0) { MinificationStatistics statistics = result.Statistics; if (statistics != null) { Console.WriteLine(" : {0:N0} ", statistics.OriginalSize); Console.WriteLine(" : {0:N0} ", statistics.MinifiedSize); Console.WriteLine(": {0:N2}%", statistics.SavedInPercent); } Console.WriteLine(" :{0}{0}{1}", Environment.NewLine, result.MinifiedContent); } else { IList<MinificationErrorInfo> errors = result.Errors; Console.WriteLine(" {0:N0} :", errors.Count); Console.WriteLine(); foreach (var error in errors) { Console.WriteLine(" {0}, {1}: {2}", error.LineNumber, error.ColumnNumber, error.Message); Console.WriteLine(); } } } } }
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо HtmlMinificationSettings
рд╡рд░реНрдЧ рдХреЛ HtmlMinificationSettings
рдФрд░ рдХреБрдЫ HTML HtmlMinificationSettings
рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВред рддрдм рд╣рдо рдЗрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ HtmlMinifier
рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╣рдо рдирд┐рдореНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде Minify
рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ: рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ HTML рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ - рдПрдХ рдзреНрд╡рдЬ рдЬреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдЬрд╛рдирдХрд╛рд░реА рдХреА рдкреАрдврд╝реА рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЧрд▓рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ) рд╕рдордп рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд░реНрд╡рд░ рд╕рдВрд╕рд╛рдзрди)ред MarkupMinificationResult
рд╡рд┐рдзрд┐ MarkupMinificationResult
рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╡рд╕реНрддреБ MarkupMinificationResult
, рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ:
- MinifiedContent - рдХрдо рд╕реЗ рдХрдо HTML рдХреЛрдб;
- рддреНрд░реБрдЯрд┐рдпрд╛рдВ - рдиреНрдпреВрдирддрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рд╣реБрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА;
- рдЪреЗрддрд╛рд╡рдиреА - рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХреА рдПрдХ рд╕реВрдЪреА рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдкрд╛рдИ рдЧрдИ рдереАрдВ;
- рд╕рд╛рдВрдЦреНрдпрд┐рдХреА - рдиреНрдпреВрдирддрдо рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдЬрд╛рдирдХрд╛рд░реАред
рдпрджрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдЦрд╛рд▓реА рд╣реИ, рддреЛ рдЖрдВрдХрдбрд╝реЗ рдФрд░ рдХрдо рд╕реЗ рдХрдо рдХреЛрдб рдХрдВрд╕реЛрд▓ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ; рдЕрдиреНрдпрдерд╛, рддреНрд░реБрдЯрд┐ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИред
рдЕрдм HtmlMinificationSettings
рд╡рд░реНрдЧ рдХреЗ рдЧреБрдгреЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ HtmlMinificationSettings
:
рдЯреЗрдмрд▓ред 1. HtmlMinificationSettings
рд╡рд░реНрдЧ рдХреЗ рдЧреБрдг
рд╕рдВрдкрддреНрддрд┐ | рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ | рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди | рд╡рд┐рд╡рд░рдг |
---|
WhitespaceMinificationMode | рдЧрдгрдирд╛ | Medium | рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдорд┐рдирд┐рдорд╛рдЗрдЬреЗрд╢рди рдореЛрдбред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ:
- рдХреЛрдИ рдирд╣реАрдВред рдЕрдкрдиреЗ рдореВрд▓ рд░реВрдк рдореЗрдВ рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рд░рдЦрддрд╛ рд╣реИред
- рд╕реБрд░рдХреНрд╖рд┐рддред рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдХрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдиреНрдпреВрдирддрдордХрд░рдг: рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рд╕реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ; рдХрдИ рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдкрд╛рддреНрд░реЛрдВ рдХреЛ рд╕рд┐рдВрдЧрд▓ рд╕реНрдкреЗрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
DOCTYPE рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрдЧрд╛рдореА рдЕрдиреБрдЧрд╛рдореА рд╕реНрдерд╛рди; рдЕрджреГрд╢реНрдп рдЯреИрдЧ ( html , head , body , meta , link , script , рдЖрджрд┐) рдХреЗ рдмрд╛рд╣рд░реА рдФрд░ рдЖрдВрддрд░рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдиреБрдЧрд╛рдореА рд░рд┐рдХреНрдд рд╕реНрдерд╛рди script ; рдЧреИрд░-рд╕реНрд╡-рдирд┐рд╣рд┐рдд рдЯреИрдЧ (рдЯреИрдЧ li , dt , dd , rt , rp , option , tr , td , th , рдЖрджрд┐) рдХреА рдмрд╛рд╣рд░реА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЕрдиреБрдЧрд╛рдореА рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред - рдордзреНрдпрдоред рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдкрд╛рддреНрд░реЛрдВ рдХреЗ рдиреНрдпреВрдирддрдо рд╕реНрддрд░ рдХрд╛ рдордзреНрдпрдо рд╕реНрддрд░: рд╕реБрд░рдХреНрд╖рд┐рдд рдиреНрдпреВрдирддрдордХрд░рдг рдХреЗ рд╕рднреА рд╕рдВрдЪрд╛рд▓рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ + рдмреНрд▓реЙрдХ рддрддреНрд╡реЛрдВ рдХреА рдмрд╛рд╣рд░реА рдФрд░ рдЖрдВрддрд░рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдиреБрдЧрд╛рдореА рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдЖрдХреНрд░рд╛рдордХ ред рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдкрд╛рддреНрд░реЛрдВ рдХреЗ рдЖрдХреНрд░рд╛рдордХ рдиреНрдпреВрдирддрдордХрд░рдг: рд╕рднреА рдордзреНрдп-рд╕реНрддрд░реАрдп рдиреНрдпреВрдирддрдордХрд░рдг рдСрдкрд░реЗрд╢рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ + рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдЗрдирд▓рд╛рдЗрди рдФрд░ рдЗрдирд▓рд╛рдЗрди-рдмреНрд▓реЙрдХ рддрддреНрд╡реЛрдВ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
|
RemoveHtmlComments | рдмреВрд▓рд┐рдпрди | true | Internet Explorer рдФрд░ noindex рджреНрд╡рд╛рд░рд╛ рд╕рд╢рд░реНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рд╕рднреА HTML рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдПрдХ рдзреНрд╡рдЬред |
RemoveHtmlCommentsFromScriptsAndStyles | рдмреВрд▓рд┐рдпрди | true | script рдФрд░ style рдЯреИрдЧ рд╕реЗ HTML рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬред |
RemoveCdataSectionsFromScriptsAndStyles | рдмреВрд▓рд┐рдпрди | true | script рдФрд░ style рдЯреИрдЧ рд╕реЗ CDATA рдЕрдиреБрднрд╛рдЧ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬред |
UseShortDoctype | рдмреВрд▓рд┐рдпрди | true | рдореМрдЬреВрджрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬ <!DOCTYPE html> ред |
UseMetaCharsetTag | рдмреВрд▓рд┐рдпрди | true | <meta http-equiv="content-type" content="text/html; charset=тАж"> рдХреЛ <meta charset="тАж"> рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬред |
EmptyTagRenderMode | рдЧрдгрдирд╛ | NoSlash | рдЦрд╛рд▓реА рдЯреИрдЧ рдХрд╛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЛрдбред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ:
- NoSlash ред рдХреЛрдИ рд╕реНрд▓реИрд╢ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
<br> ); - рд╕реНрд▓реЗрд╢ред рдПрдХ рд╕реНрд▓реИрд╢ рдХреЗ рд╕рд╛рде (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
<br/> ); - SpaceAndSlash ред рдПрдХ рд╕реНрд▓реИрд╢ рдФрд░ рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
<br /> )ред
|
RemoveOptionalEndTags | рдмреВрд▓рд┐рдпрди | true | рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрдВрдд рдЯреИрдЧ ( html , head , body , p , li , dt , dd , rt , rp , optgroup , option , thead , tfoot , tbody , tbody , tr , th рдФрд░ td ) рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬред |
RemoveTagsWithoutContent | рдмреВрд▓рд┐рдпрди | false | рдПрдХ рдРрд╕рд╛ рдЯреИрдЧ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ textarea , tr , th , td рдЯреИрдЧ рдФрд░ class , id , name , role , src рдФрд░ data-* рд╕рд╛рде рдЦрд╛рд▓реА рд╕рд╛рдордЧреНрд░реА рд╣реИред |
CollapseBooleanAttributes | рдмреВрд▓рд┐рдпрди | true | рдмреВрд▓рд┐рдпрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ "рддрд╣" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, checked="checked" checked рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо checked )ред |
RemoveEmptyAttributes | рдмреВрд▓рд┐рдпрди | true | рдЦрд╛рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬ (рдХреЗрд╡рд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ: class , id , name , style , title , lang , dir , рдИрд╡реЗрдВрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ, form рдЯреИрдЧ рдХреА action рд╡рд┐рд╢реЗрд╖рддрд╛ рдФрд░ input рдЯреИрдЧ рдХреЗ value рд╡рд┐рд╢реЗрд╖рддрд╛)ред |
AttributeQuotesRemovalMode | рдЧрдгрдирд╛ | Html5 | HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдЙрджреНрдзрд░рдг рд╣рдЯрд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ:
- KeepQuotesред рдЙрджреНрдзрд░рдг рд╕рд╣реЗрдЬреЗрдВ;
- Html4 HTML 4.X рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрджреНрдзрд░рдг рд╣рдЯрд╛рддрд╛ рд╣реИ;
- Html5 HTML5 рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрджреНрдзрд░рдг рд╣рдЯрд╛рддрд╛ рд╣реИред
|
RemoveRedundantAttributes | рдмреВрд▓рд┐рдпрди | true | рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬ:
- <рд▓рд┐рдкрд┐ рднрд╛рд╖рд╛ = "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ" >
- <script src = "..." charset = "..." >
- <рд▓рд┐рдВрдХ rel = "рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ" charset = "..." >
- <form method = "get" >
- <рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ = "рдЯреЗрдХреНрд╕реНрдЯ" >
- <a id="... name="...>
- <рдХреНрд╖реЗрддреНрд░ рдЖрдХрд╛рд░ = "рд░реЗрдХреНрдЯ" >
|
RemoveJsTypeAttributes | рдмреВрд▓рд┐рдпрди | true | script рдЯреИрдЧ рд╕реЗ type="text/javascript" рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬред |
RemoveCssTypeAttributes | рдмреВрд▓рд┐рдпрди | true | style рдФрд░ link рдЯреИрдЧ рд╕реЗ type="text/css" рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬред |
RemoveHttpProtocolFromAttributes | рдмреВрд▓рд┐рдпрди | false | HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЙрдкрд╕рд░реНрдЧ ( http: рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬ рдЬрд┐рдирдореЗрдВ URL рд╣реЛрддреЗ рд╣реИрдВ ( rel="external" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдЯреИрдЧ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред |
RemoveHttpsProtocolFromAttributes | рдмреВрд▓рд┐рдпрди | false | HTTPS рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЙрдкрд╕рд░реНрдЧ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬ ( https: рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рд╣реИ рдЬрд┐рдирдореЗрдВ URL рд╣реЛрддреЗ рд╣реИрдВ ( rel="external" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдЯреИрдЧ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред |
RemoveJsProtocolFromAttributes | рдмреВрд▓рд┐рдпрди | true | javascript: рдЫрджреНрдо рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЙрдкрд╕рд░реНрдЧ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдЭрдВрдбрд╛ javascript: рдШрдЯрдирд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗред |
MinifyEmbeddedCssCode | рдмреВрд▓рд┐рдпрди | true | рдлреНрд▓реИрдЧ рдЬреЛ style рдЯреИрдЧ рдореЗрдВ CSS рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред |
MinifyInlineCssCode | рдмреВрд▓рд┐рдпрди | true | рдПрдХ рдзреНрд╡рдЬ рдЬреЛ style рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред |
MinifyEmbeddedJsCode | рдмреВрд▓рд┐рдпрди | true | script рдЯреИрдЧ рдореЗрдВ рдЬреЗрдПрд╕ рдХреЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬред |
MinifyInlineJsCode | рдмреВрд▓рд┐рдпрди | true | рдШрдЯрдирд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ javascript: рдЫрджреНрдо рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдореЗрдВ рдЬреЗрдПрд╕ рдХреЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдзреНрд╡рдЬ javascript: |
рдпрджрд┐ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╕рдорд╛рди HTML рдиреНрдпреВрдирддрдордХрд░рдг рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ ( App.config
рдпрд╛ Web.config
) рдореЗрдВ /configuration/webMarkupMin/core/html
рддрддреНрд╡ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <sectionGroup name="webMarkupMin"> <section name="core" type="WebMarkupMin.Core.Configuration.CoreConfiguration, WebMarkupMin.Core" /> тАж </sectionGroup> тАж </configSections> тАж <webMarkupMin xmlns="http://tempuri.org/WebMarkupMin.Configuration.xsd"> <core> <html whitespaceMinificationMode="Medium" removeHtmlComments="true" removeHtmlCommentsFromScriptsAndStyles="true" removeCdataSectionsFromScriptsAndStyles="true" useShortDoctype="true" useMetaCharsetTag="true" emptyTagRenderMode="NoSlash" removeOptionalEndTags="true" removeTagsWithoutContent="false" collapseBooleanAttributes="true" removeEmptyAttributes="true" attributeQuotesRemovalMode="Html5" removeRedundantAttributes="true" removeJsTypeAttributes="true" removeCssTypeAttributes="true" removeHttpProtocolFromAttributes="false" removeHttpsProtocolFromAttributes="false" removeJsProtocolFromAttributes="true" minifyEmbeddedCssCode="true" minifyInlineCssCode="true" minifyEmbeddedJsCode="true" minifyInlineJsCode="true" /> тАж </core> тАж </webMarkupMin> тАж </configuration>
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдорд╛рди рдХреЗ рд╕рд╛рде HtmlMinificationSettings
рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
HtmlMinificationSettings settings = WebMarkupMinContext.Current.Markup.GetHtmlMinificationSettings();
рдЖрдк HtmlMinifier
рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (HTML рдиреНрдпреВрдирддрдо рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкрдВрдЬреАрдХреГрдд: CSS рдиреНрдпреВрдирддрдо, рдЬреЗрдПрд╕ рдиреНрдпреВрдирддрдо рдФрд░ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛):
HtmlMinifier htmlMinifier = WebMarkupMinContext.Current.Markup.CreateHtmlMinifierInstance();
HTML рдиреНрдпреВрдирддрдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ ASP.NET рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
CSS рдФрд░ JS рдХреЛрдб рдиреНрдпреВрдирддрдо
рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, HtmlMinifier
рдФрд░ XhtmlMinifier
рд╕рдкреЛрд░реНрдЯ: style
рдЯреИрдЧ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ CSS рдХреЛрдб рдХреЛ рдХрдо рдХрд░рдирд╛ рдФрд░ script
рдЯреИрдЧ, рдИрд╡реЗрдВрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, onclick
) рдФрд░ javascript:
рд╕рд╛рде рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рдХрдо рдХрд░рдирд╛ javascript:
рдЫрджреНрдо-рдкреНрд░реЛрдЯреЛрдХреЙрд▓ред
CSS рдФрд░ JS рдХреЛрдб рдЙрди рд╡рд░реНрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрдо рд╕реЗ рдХрдо рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ ICssMinifier
рдФрд░ IJsMinifier
рдХреЛ WebMarkupMin.Core.Minifiers
рдирд╛рдорд╕реНрдерд╛рди рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдХрд░реНрдиреЗрд▓ рдореЗрдВ рджреЛ рд╡рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ ICssMinifier
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:
- NullCssMinifierред рдПрдХ рд╕реНрдЯрдм рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдХреЛрдИ рдЗрдирд▓рд╛рдЗрди рд╕реНрдЯрд╛рдЗрд▓ рди рд╣реЛрдВред
- KristensenCssMinifierред рдореИрдбреНрд╕ рдХреНрд░рд┐рд╕реНрдЯреЗрдВрд╕рди рдХреА рдХреБрд╢рд▓ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдорд┐рдирд┐рдлрд╛рдпрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдорд┐рдд рд╕рд░рд▓рддрдо рд╕реАрдПрд╕рдПрд╕ рдХреЛрдб рдиреНрдпреВрдирддрдоред рдбрд┐рдлрд╝реЙрд▓реНрдЯ CSS рдиреНрдпреВрдирддрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдФрд░ рджреЛ рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛ IJsMinifier
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИрдВ:
- NullJsMinifierред рдПрдХ рд╕реНрдЯрдм рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
- CrockfordJsMinifierред рдбрдЧрд▓рд╕ рдХреНрд░реЙрдХрдлреЛрд░реНрдб рдХреЗ JSMin рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╕рд░рд▓рддрдо JS рдХреЛрдб рдиреНрдпреВрдирддрдоред рдбрд┐рдлрд╝реЙрд▓реНрдЯ JS рдиреНрдпреВрдирддрдордХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
CSS рдФрд░ JS рдиреНрдпреВрдирддрдордХреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рд░реНрдХрдЕрдк рдиреНрдпреВрдирддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
var kristensenCssMinifier = new KristensenCssMinifier(); var crockfordJsMinifier = new CrockfordJsMinifier(); var htmlMinifier = new HtmlMinifier(cssMinifier: kristensenCssMinifier, jsMinifier: crockfordJsMinifier);
рдпрджрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдорд╛рд░реНрдХрдЕрдк рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ CSS рдФрд░ JS рдиреНрдпреВрдирддрдордХ рдХреЛ рдиреНрдпреВрдирддрдо рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рдХреЗ рдорд╛рд░реНрдХрдЕрдк рдиреНрдпреВрдирддрдо рдкрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <sectionGroup name="webMarkupMin"> <section name="core" type="WebMarkupMin.Core.Configuration.CoreConfiguration, WebMarkupMin.Core" /> тАж </sectionGroup> тАж </configSections> тАж <webMarkupMin xmlns="http://tempuri.org/WebMarkupMin.Configuration.xsd"> <core> тАж <css defaultMinifier="KristensenCssMinifier"> <minifiers> <add name="NullCssMinifier" displayName="Null CSS Minifier" type="WebMarkupMin.Core.Minifiers.NullCssMinifier, WebMarkupMin.Core" /> <add name="KristensenCssMinifier" displayName="Mads Kristensen's CSS minifier" type="WebMarkupMin.Core.Minifiers.KristensenCssMinifier, WebMarkupMin.Core" /> </minifiers> </css> <js defaultMinifier="CrockfordJsMinifier"> <minifiers> <add name="NullJsMinifier" displayName="Null JS Minifier" type="WebMarkupMin.Core.Minifiers.NullJsMinifier, WebMarkupMin.Core" /> <add name="CrockfordJsMinifier" displayName="Douglas Crockford's JS Minifier" type="WebMarkupMin.Core.Minifiers.CrockfordJsMinifier, WebMarkupMin.Core" /> </minifiers> </js> тАж </core> тАж </webMarkupMin> тАж </configuration>
рдпрджрд┐ CSS рдФрд░ JS рдиреНрдпреВрдирддрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
ICssMinifier cssMinifier = WebMarkupMinContext.Current.Code.CreateCssMinifierInstance("KristensenCssMinifier"); IJsMinifier jsMinifier = WebMarkupMinContext.Current.Code.CreateJsMinifierInstance("CrockfordJsMinifier");
рдпрджрд┐ рдЖрдк рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬреЗрдПрд╕ рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдиреНрдпреВрдирддрдо рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
ICssMinifier cssMinifier = WebMarkupMinContext.Current.Code.CreateDefaultCssMinifierInstance(); IJsMinifier jsMinifier = WebMarkupMinContext.Current.Code.CreateDefaultJsMinifierInstance();
рд╡рд╛рд▓реЛрдВ
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, WebMarkupMin рд▓реЙрдЧрд░реНрд╕ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдЕрдкрдиреЗ рд▓реЙрдЧ рдореЗрдВ рдХреЗрдВрджреНрд░реАрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХреЛрдИ рднреА рд╡рд░реНрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ ILogger
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдпрд╛ WebMarkupMin.Core.Loggers
рдирд╛рдо рд╕реНрдерд╛рди рд╕реЗ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ LoggerBase
рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ WebMarkupMin.Core.Loggers
рд╣реИред
рдХрд░реНрдиреЗрд▓ рдореЗрдВ рджреЛ рд╡рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ ILogger
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:
- NullLoggerред рдПрдХ рд╕реНрдЯрдм рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЖрдк рд╕реНрд╡рдпрдВ
MarkupMinificationResult
рд╡рд░реНрдЧ рдХреА Errors
рдФрд░ Warnings
рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред - ThrowExceptionLoggerред рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдиреНрдпреВрдирддрдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╣реЛрддреА рд╣реИ, рддреЛ
ThrowExceptionLogger
рд╡рд░реНрдЧ ThrowExceptionLogger
рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдкрд╡рд╛рдж ThrowExceptionLogger
ред
рдПрдХ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдЙрджрд╛рд╣рд░рдг рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рд░реНрдХрдЕрдк рдиреНрдпреВрдирддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
var htmlMinifier = new HtmlMinifier(logger: new ThrowExceptionLogger());
рдпрджрд┐ рдорд╛рд░реНрдХрдЕрдк рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд▓реЙрдЧрд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рд╛рдЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <sectionGroup name="webMarkupMin"> <section name="core" type="WebMarkupMin.Core.Configuration.CoreConfiguration, WebMarkupMin.Core" /> тАж </sectionGroup> тАж </configSections> тАж <webMarkupMin xmlns="http://tempuri.org/WebMarkupMin.Configuration.xsd"> <core> тАж <logging defaultLogger="ThrowExceptionLogger"> <loggers> <add name="NullLogger" displayName="Null Logger" type="WebMarkupMin.Core.Loggers.NullLogger, WebMarkupMin.Core" /> <add name="ThrowExceptionLogger" displayName="Throw exception logger" type="WebMarkupMin.Core.Loggers.ThrowExceptionLogger, WebMarkupMin.Core" /> </loggers> </logging> </core> тАж </webMarkupMin> тАж </configuration>
рдпрджрд┐ рд▓реЙрдЧрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИ, рддреЛ рдЖрдк рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
ILogger logger = WebMarkupMinContext.Current.CreateLoggerInstance("ThrowExceptionLogger");
рддрджрдиреБрд╕рд╛рд░, рдПрдХ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
ILogger logger = WebMarkupMinContext.Current.CreateDefaultLoggerInstance();
рд╕рдВрдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ:
ILogger logger = WebMarkupMinContext.Current.GetLoggerInstance("ThrowExceptionLogger");
рдФрд░
ILogger logger = WebMarkupMinContext.Current.GetDefaultLoggerInstance();
рдмрд╛рд╣рд░реА рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬреЗрдПрд╕ рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬреЗрдПрд╕ рдХреЛрдб рдиреНрдпреВрдирддрдо рдХреЗрд╡рд▓ рд╕рд░рд▓ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рд╕рдВрдкреАрдбрд╝рди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, .NET рд╕рдореБрджрд╛рдп рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдПрдбреЗрдкреНрдЯрд░ рдпреБрдХреНрдд рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдП рдЧрдП рдереЗ: .Net рдХреЗ рд▓рд┐рдП Microsoft Ajax Minifier рдФрд░ YUI рдХрдВрдкреНрд░реЗрд╕рд░ ред
WebMarkupMin.MsAjax рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рджреЛ рдиреНрдпреВрдирддрдо рдПрдбреЗрдкреНрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ: MsAjaxCssMinifier
рдФрд░ MsAjaxJsMinifier
ред WebMarkupMin.Yui рдореЙрдбреНрдпреВрд▓ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИ: YuiCssMinifier
рдФрд░ YuiJsMinifier
ред
рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдП рдЧрдП рдПрдбреЗрдкреНрдЯрд░ рдХреЛ рдПрдХ рд╣реА рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рд░реНрдХрдЕрдк рдиреНрдпреВрдирддрдо рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдкрд░реЛрдХреНрдд рдмрд╛рд╣рд░реА webMarkupMin/msAjax
рдХреА webMarkupMin/msAjax
рдХреЛ webMarkupMin/msAjax
рдФрд░ webMarkupMin/yui
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреЛ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЗрд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдкрд╛рдПрдВрдЧреЗ)ред
ASP.NET рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди
WebMarkupMin: рд╡реЗрдм рдПрдХреНрд╕рдЯреЗрдВрд╢рди
WebMarkupMin.Web рдореЙрдбреНрдпреВрд▓ ASP.NET рдХрд░реНрдиреЗрд▓ рд╕реНрддрд░ рдкрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА ASP.NET рдлреНрд░реЗрдорд╡рд░реНрдХ: рд╡реЗрдм рдлреЙрд░реНрдо, MVC рдФрд░ рд╡реЗрдм рдкреЗрдЬ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
WebMarkupMin.Web рдореЗрдВ рдЙрди HTTP рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ ASP.NET рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреЛ рдиреНрдпреВрдирддрдо рдФрд░ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ:
- HtmlMinificationModuleред HTML Minifier рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ content type
text/html
рд╕рд╛рде HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред - XhtmlMinificationModuleред
text/html
рдорд┐рдирд┐рдлрд╛рдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдХреЗ text/html
рдпрд╛ application/xhtml+xml
рд╕рд╛рде HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред - XmlMinificationModuleред XML- рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рддрд╛ рд╣реИ (рдПрдХреНрд╕рдПрдордПрд▓ рдорд┐рдирд┐рдлрд╛рдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
application/xhtml+xml
рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде)ред - CompressionModuleред рдПрдХ рдкрд╛рда рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ HTTP рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред
рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз HTTP рдореЙрдбреНрдпреВрд▓ рдХреЗрд╡рд▓ 200
рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ HtmlMinificationModule
рдФрд░ XhtmlMinificationModule
рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Web.config
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ HTTP рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
<?xml version="1.0" encoding="utf-8"?> <configuration> тАж <system.webServer> <modules> <add name="HtmlMinificationModule" type="WebMarkupMin.Web.HttpModules.HtmlMinificationModule, WebMarkupMin.Web" /> <add name="CompressionModule" type="WebMarkupMin.Web.HttpModules.CompressionModule, WebMarkupMin.Web" /> тАж </modules> тАж </system.webServer> тАж </configuration>
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди HTTP рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ webMarkupMin/webExtensions
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <sectionGroup name="webMarkupMin"> <section name="core" type="WebMarkupMin.Core.Configuration.CoreConfiguration, WebMarkupMin.Core" /> <section name="webExtensions" type="WebMarkupMin.Web.Configuration.WebExtensionsConfiguration, WebMarkupMin.Web" /> тАж </sectionGroup> тАж </configSections> тАж <webMarkupMin xmlns="http://tempuri.org/WebMarkupMin.Configuration.xsd"> тАж <webExtensions enableMinification="true" disableMinificationInDebugMode="true" enableCompression="true" disableCompressionInDebugMode="true" maxResponseSize="100000" /> тАж </webMarkupMin> тАж </configuration>
рд╣рдо webExtensions
рд╕рднреА рдЧреБрдгреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ:
рдЯреЗрдмрд▓ред 2 webExtensions
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ webExtensions
рд╕рдВрдкрддреНрддрд┐ | рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ | рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди | рд╡рд┐рд╡рд░рдг |
---|
enableMinification | рдмреВрд▓рд┐рдпрди | true | рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред |
disableMinificationInDebugMode | рдмреВрд▓рд┐рдпрди | true | рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрд░реЗрдВред |
enableCompression | рдмреВрд▓рд┐рдпрди | true | рдкрд╛рда рд╕рд╛рдордЧреНрд░реА рдХреЗ HTTP рд╕рдВрдкреАрдбрд╝рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред |
disableCompressionInDebugMode | рдмреВрд▓рд┐рдпрди | true | рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдкрд╛рда рд╕рд╛рдордЧреНрд░реА рдХреЗ HTTP рд╕рдВрдкреАрдбрд╝рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред |
maxResponseSize | рдкреВрд░реНрдгрд╛рдВрдХ | 100 000 | HTTP рдкреНрд░рддрд┐рд╕рд╛рдж рдХрд╛ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ (рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ) рдЬрд┐рд╕рдХреЗ рдКрдкрд░ рдорд╛рд░реНрдХрдЕрдк рдиреНрдпреВрдирддрдордХрд░рдг рдЕрдХреНрд╖рдо рд╣реИред |
рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп WebMarkupMin рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: WebMarkupMin.Mvc рдФрд░ WebMarkupMin.WebFormsред
, HTTP- ASP.NET-, MVC Web Forms , HTTP- . HTTP- , ASP.NET Web Pages.
WebMarkupMin: ASP.NET MVC Extensions
WebMarkupMin.Mvc -, ASP.NET MVC 3 4.
WebMarkupMin.Mvc 4 :
- MinifyHtmlAttribute. HTML Minifier.
text/html
, InvalidContentTypeException
. - MinifyXhtmlAttribute. XHTML Minifier.
text/html
application/xhtml+xml
, InvalidContentTypeException
. - MinifyXmlAttribute. XML Minifier. XML,
InvalidContentTypeException
. - CompressContentAttribute. HTTP- .
:
namespace WebMarkupMin.Example.Mvc.Controllers { using System.Web.Mvc; using Infrastructure.ActionResults; using WebMarkupMin.Mvc.ActionFilters; public class HomeController : Controller { [CompressContent] [MinifyHtml] [OutputCache(CacheProfile = "CacheCompressedContent5Minutes")] public ActionResult Index() { тАж } тАж } }
HTTP- , OutputCacheAttribute
.
WebMarkupMin: ASP.NET Web Forms Extensions
WebMarkupMin.WebForms -, ASP.NET Web Forms 4.0 4.5.
WebMarkupMin.WebForms 3 Web Forms:
- CompressedPage. HTTP-.
- MinifiedAndCompressedHtmlPage. HTML- HTTP-.
- MinifiedAndCompressedXhtmlPage. XHTML- HTTP-.
HTML- HTTP- Web Forms, MinifiedAndCompressedHtmlPage
:
namespace WebMarkupMin.Example.WebForms { using System; using WebMarkupMin.WebForms.Pages; public partial class Contact : MinifiedAndCompressedHtmlPage { тАж } }
HTTP- , EnableMinification
EnableCompression
:
private void Page_PreLoad(object sender, EventArgs e) { if (IsPostBack) { EnableMinification = false; EnableCompression = false; } }
HTTP- OutputCache
:
<%@ Page Title="Contact" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Contact.aspx.cs" Inherits="WebMarkupMin.Example.WebForms.Contact" %> <%@ OutputCache CacheProfile="CacheCompressedContent5Minutes" VaryByParam="*" %> тАж
WebMarkupMin.WebForms -: CompressedMasterPage
, MinifiedAndCompressedHtmlMasterPage
MinifiedAndCompressedXhtmlMasterPage
.
HTML- HTTP- -, MinifiedAndCompressedHtmlMasterPage
:
namespace WebMarkupMin.Example.WebForms { using System; using System.Web.UI; using WebMarkupMin.WebForms.MasterPages; public partial class Site : MinifiedAndCompressedHtmlMasterPage { тАж } }
, - .
HTML- WebMarkupMin 25-40%. , HTTP- . - , HTML- HTTP- . , , : ( HTTP- ).
HTML- , ASP.NET, . HTML- , CSS- YuiCssMinifier
, JS- тАФ MsAjaxJsMinifier
.
. 3. HTML- HTTP-
| рдкрддрд╛ | * | * | |
---|
рдкреЛрд╕реНрдЯрд░ | www.afisha.ru | 162,28 | 110,64 | 31,82% |
рдПрдордЯреАрдПрд╕ | www.mts.ru | 80,56 | 48,50 | 39,80% |
OZON | www.ozon.ru | 107,32 | 62,21 | 42,03% |
Workle | www.workle.ru | 115,26 | 72,94 | 36,72% |
. 4. HTML- HTTP- ( GZIP-)
| рдкрддрд╛ | * | * | |
---|
рдкреЛрд╕реНрдЯрд░ | www.afisha.ru | 30,01 | 25,47 | 15,14% |
рдПрдордЯреАрдПрд╕ | www.mts.ru | 19,08 | 14,15 | 25,86% |
OZON | www.ozon.ru | 16,58 | 14,23 | 14,22% |
Workle | www.workle.ru | 19,06 | 17,31 | 9,15% |
* тАФ , 1 = 1 024
. 3 , HTTP- HTML- 37,59%, .
HTTP- (. 4) . : 4,54 4,93 . , 2 , .
рдЖрдк WebMarkupMin рдСрдирд▓рд╛рдЗрди рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ HTML рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рдСрдирд▓рд╛рдЗрди рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдорд╛рдк рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ ред
рдЕрдВрдЬреАрд░ред 2. WebMarkupMin рдСрдирд▓рд╛рдЗрди рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ HTML рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдХрд╛ рдСрдирд▓рд╛рдЗрди рд╕рдВрд╕реНрдХрд░рдгрд╕рдВрджрд░реНрдн
- WebMarkupMin рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреЗрдЬ рдХреЛрдбрдкреНрд▓реЗрдХреНрд╕ рдкрд░
- WebMarkupMin рдСрдирд▓рд╛рдЗрди рд╡реЗрдмрд╕рд╛рдЗрдЯ
- рдЖрд░реНрдЯреЗрдорд┐рдпрд╛ рд▓реЗрдмреЗрджреЗрд╡ рдХрд╛ рд▓реЗрдЦ "рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдкреИрд░рд╛рдиреЛрдЗрдпрд╛"
- рдЧрд╛рдЗрдб ┬лрдЧреВрдЧрд▓ HTML / CSS рд╕реНрдЯрд╛рдЗрд▓ рдЧрд╛рдЗрдб рд╕рдореАрдХреНрд╖рд╛┬╗ ( рдЕрдиреБрд╡рд╛рдж )
- рдпреВрд░реА рдЬрд╝реИрддрд╕реЗрд╡ рдХрд╛ рд▓реЗрдЦ "рдЕрдиреБрдХреВрд▓рди HTML"