Js ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ – Какими срСдствами Π²Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈ собираСтС css ΠΈ js ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½?

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠœΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Javascript ΠΊΠΎΠ΄Π° ΠΈ CSS с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Microsoft Ajax Minifier / Habr

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΡ‘ΠΌΠ½Ρ‹Ρ… рСсурсов, связанных с Π²Π΅Π±-страницСй, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ JavaScript Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ CSS, влияСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы, Π½ΠΎ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, проходящий ΠΎΡ‚ сСрвСра ΠΊ клиСнтскому Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ. ПослСднСС ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ Π² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ… с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ‚Π°Ρ€ΠΈΡ„ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ сайта Π½Π° хостингС с Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠΌ исходящих Π΄Π°Π½Π½Ρ‹Ρ….

Один ΠΈΠ· способов Π±ΠΎΡ€ΡŒΠ±Ρ‹ с лишними Π±Π°ΠΉΡ‚Π°ΠΌΠΈ – сТатиС Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сСрвСрС ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° gzip’ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ распаковываСт Π΅Π³ΠΎ Π²ΠΎ врСмя отрисовки страницы. ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ способа Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ. Π― Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π» Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ способС ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ удалСния всСх Π½Π΅Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΡ… символов ΠΈΠ· ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π²Π΅Π±-страницС Ρ„Π°ΠΉΠ»ΠΎΠ²: JavaScript ΠΈ CSS – ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈ написании клиСнтских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ стилСй сайта программист/Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚Π±ΠΈΠ²ΠΊΡƒ строк ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ‚Π°Π±Π°ΠΌΠΈ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ тСкста ΠΈ простоты сопровоТдСния. Π£Π΄ΠΎΠ±Π½Π΅Π΅ ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π²ΠΎΠ·Π½ΠΈΠΊΡˆΡƒΡŽ Π² сСрСдинС 100-Π° строчного Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ структурирован ΠΈ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΌ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка способом. ΠŸΡ€Π°Π²ΠΈΠ»Π° CSS ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ JavaScript Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, размСстим ΠΌΡ‹ ΠΈΡ… всС Π² ΠΎΠ΄Π½Ρƒ строку ΠΈΠ»ΠΈ, помСстив ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС.

Π”Π°Π½Π½Ρ‹Π΅ изыски Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ просто лишними, ΠΊΠΎΠ³Π΄Π° сайт Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° просторы Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, процСсс трансформации ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ β€” Π΄Π΅Π»ΠΎ Π½Π΅ ΠΈΠ· Π»Ρ‘Π³ΠΊΠΈΡ… ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ.

16-Π³ΠΎ фСвраля 2010-Π³ΠΎ Microsoft выпустили Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ своСй ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Microsoft Ajax Minifier, Π·Π°Π΄Π°Ρ‡Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² JavaScript ΠΈ CSS – Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π­Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈΠ»ΠΈ ΠΈΠ· собствСнной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС .NET (Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ), Ρ‚Π°ΠΊ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСмы MSBuild ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² Microsoft Visual Studio (я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с VS 2008).

ПослС установки ΠΏΠ°ΠΊΠ΅Ρ‚Π° Microsoft Ajax Minifier появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ для MSBuild’Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, созданныС Π½Π° основС встроСнных Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ASP.NET Web Application. Π‘Π°ΠΉΡ‚Ρ‹, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² ΡΡ‚ΡƒΠ΄ΠΈΡŽ ΠΊΠ°ΠΊ Web site – Π½Π΅ подходят, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ .proj Ρ„Π°ΠΉΠ»ΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π·Π°Π΄Π°Ρ‡ΠΈ MSBuild’Π°.

  1. Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ Unload Project Π² контСкстном мСню ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сайта.
  2. Π’ контСкстном мСню ΡƒΠΆΠ΅ ΠΎΡ‚Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Edit project name; Visual Studio ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ Ρ„Π°ΠΉΠ» *.proj для рСдактирования.
  3. ΠŸΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³Π° <Project>:
    1. <Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks"/>
    2. <Target Name="AfterBuild">
    3. Β Β Β Β <ItemGroup>
    4. Β Β Β Β Β Β Β Β <JS Include="**\*.js" Exclude="**\*.min.js;Scripts\*.js"/>
    5. Β Β Β Β </ItemGroup>
    6. Β Β Β Β <ItemGroup>
    7. Β Β Β Β Β Β Β Β <CSS Include="**\*.css" Exclude="**\*.min.css"/>
    8. Β Β Β Β </ItemGroup>
    9. Β Β Β Β <AjaxMin
    10. Β Β Β Β Β Β Β Β JsSourceFiles="@(JS)"Β JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js"
    11. Β Β Β Β Β Β Β Β CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css"/>
    12. </Target>
    * This source code was highlighted with Source Code Highlighter.

  4. ΠŸΡƒΠ½ΠΊΡ‚ контСкстного мСню Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Reload Project – Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ сайт Π² Π»ΠΎΠ½ΠΎ Visual Studio ΠΈ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Build (ΠΈΠ»ΠΈ Rebuild) для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности.
  5. Π’Π°ΠΆΠ½ΠΎ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΡ‚ΡƒΠ΄ΠΈΡŽ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (мСню Project, Show All Files).
  6. Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° Refresh послС компиляции ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈΠ½Π°Ρ‡Π΅ студия Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ MSBuild’Π°.
  7. Если Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Π·Π°ΠΊΡ€Π°Π»Π°ΡΡŒ ошибка – ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ структурС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊΠ°ΠΊ Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ. Π’Ρ‹Π±ΠΎΡ€ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π»ΠΈ ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ – Π·Π° Π²Π°ΠΌΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ я просто ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° FTP – сгСнСрированныС Ρ„Π°ΠΉΠ»Ρ‹ Ρƒ мСня Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹.

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ с языком MSBuild’Π° – ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ пояснСниС ΠΏ. 3:

  1. Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, установлСнных вмСстС с Microsoft Ajax Minifier
    <Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\ajaxmin.tasks"/>

    * This source code was highlighted with Source Code Highlighter.


  2. ОбъявлСниС задания, запускаСмого послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ компилирования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
    <Target Name="AfterBuild">

    * This source code was highlighted with Source Code Highlighter.


  3. Π”Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ произвСсти Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ – ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² ΠΈΡ…. Π’Π΅Π³ΠΈ <JS> ΠΈ <CSS> – Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΈ названия ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π²Π°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ <JS> ΠΈΠ»ΠΈ <JSFiles>, ΠΈΠ»ΠΈ, Π΄Π°ΠΆΠ΅, <MinimizeThis>. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ΠΌ .js ΠΈ .css Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ… ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° .min.js ΠΈΠ»ΠΈ .min.css, ΠΈΠ»ΠΈ находятся Π² ΠΏΠ°ΠΏΠΊΠ΅ Scripts.
    1. <ItemGroup>
    2. Β Β <JS Include="**\*.js" Exclude="**\*.min.js;Scripts\*.js"/>
    3. </ItemGroup>
    4. <ItemGroup>
    5. Β Β <CSS Include="**\*.css" Exclude="**\*.min.css"/>
    6. </ItemGroup>
    * This source code was highlighted with Source Code Highlighter.

  4. ЗапускаСм Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ. Π“Ρ€ΡƒΠΏΠΏΡ‹ JavaScript ΠΈ CSS Ρ„Π°ΠΉΠ»ΠΎΠ² для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ обозначаСтся ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… строках (<JS> ΠΈ <CSS>). Π€Π°ΠΉΠ»Ρ‹, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для Π½ΠΎΠ²ΠΎ-ΡƒΡ‚Ρ€Π°ΠΌΠ±ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ…
    JsSourceExtensionPattern
    , CssSourceExtensionPattern ΠΈ JsTargetExtension, CssTargetExtension, соотвСтствСнно.
    <AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js" CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css"/>

    * This source code was highlighted with Source Code Highlighter.


Π—Π°Π΄Π°Ρ‡Π° ΠΈΠΌΠ΅Π΅Ρ‚ ряд Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

  1. JsCollapseToLiteral="true|false"

    * This source code was highlighted with Source Code Highlighter.


    ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ new Object() Π² {}, new Array() Π² [].
  2. JsCombineDuplicateLiterals="true|false"

    * This source code was highlighted with Source Code Highlighter.


    ΠŸΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ вмСсто ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ строковых ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅.
  3. JsEvalTreatment="MakeAllSafe|Ignore|MakeImmediateSafe"

    * This source code was highlighted with Source Code Highlighter.


    Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΡƒ пСрСимСнования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ΄Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΌ eval. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΠΎΠΉ установки, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° ΠΊΠΎΠ΄Π° Π² eval Π½Π΅ ясна ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ.
  4. JsIndentSize="number"

    * This source code was highlighted with Source Code Highlighter.


    Когда JsOutputMode=Β«MultipleLinesΒ», ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² для ΠΎΡ‚Π±ΠΈΠ²ΠΊΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… конструкций.
  5. JsInlineSafeStrings="true|false"

    * This source code was highlighted with Source Code Highlighter.


  6. JsLocalRenaming="CrunchAll|KeepAll|KeepLocalizationVars"

    * This source code was highlighted with Source Code Highlighter.


    Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ примСнСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ пСрСимСнования Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Когда JsLocalRenaming=Β«KeepLocalizationVarsΒ», ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с L_, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ‹.
  7. JsMacSafariQuirks="true|false"

    * This source code was highlighted with Source Code Highlighter.


    ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π²ΠΈΠΆΠΊΠ° JavaScript Π² Safari ΠΏΠΎΠ΄ Mac.
  8. JsOutputMode="SingleLine|MultipleLines"

    * This source code was highlighted with Source Code Highlighter.


    ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, сохраняя Π½Π΅ΠΊΡƒΡŽ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, хотя всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ (ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€) – Π±ΡƒΠ΄ΡƒΡ‚ всё Ρ€Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹.
  9. JsRemoveFunctionExpressionNames="true|false"

    * This source code was highlighted with Source Code Highlighter.


  10. JsRemoveUnneededCode="true|false"

    * This source code was highlighted with Source Code Highlighter.


    Π£Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ участвуСт Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (unreachable code).
  11. JsStripDebugStatements="true|false"

    * This source code was highlighted with Source Code Highlighter.


    Π˜Π·Ρ‹ΠΌΠ°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ: debugger, $Debug, Debug, Web.Debug ΠΈΠ»ΠΈ Msn.Debug, WAssert.
  12. CssColorNames="Strict|Hex|Major"

    * This source code was highlighted with Source Code Highlighter.


    Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ подстановки ΠΈΠΌΠ΅Π½ΠΈ Ρ†Π²Π΅Ρ‚Π° вмСсто RGB ΠΊΠΎΠ΄Π°, Ссли Π΄Π°Π½Π½ΠΎΠ΅ имя ΠΊΠΎΡ€ΠΎΡ‡Π΅ (
    CssColorNames=Β«StrictΒ»
    ).
  13. CssCommentMode="None|All|Hacks"

    * This source code was highlighted with Source Code Highlighter.


    Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π° счёт CSS ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². CssCommentMode=Β«HacksΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, оставит Π² ΠΊΠΎΠ΄Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ условно ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ CSS-Ρ…Π°ΠΊΠΈ.
  14. CssExpandOutput="true|false"

    * This source code was highlighted with Source Code Highlighter.


    ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, сохраняя Π½Π΅ΠΊΡƒΡŽ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСн Π² нСсколько строк, вмСсто ΠΎΠ΄Π½ΠΎΠΉ.
  15. CssSeverity="number"

    * This source code was highlighted with Source Code Highlighter.


    Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ нСточности CSS Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ ΠΊΠ°ΠΊ ошибки.
  16. CssTermSemicolons="true|false"

    * This source code was highlighted with Source Code Highlighter.


    УправляСт расстановкой Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой послС ΠΏΡ€Π°Π²ΠΈΠ» CSS.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” с Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Microsoft Ajax Minifier β€” Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ установки Π΄Π°Π½Π½ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π½Π° всС ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² процСссС компиляции.

Бсылки:

  1. Π‘Π°ΠΉΡ‚ Microsoft Ajax Minifier: http://aspnet.codeplex.com/releases/view/40584
  2. Учимся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Microsoft Ajax Minifier: http://www.asp.net/ajaxlibrary/AjaxMinQuickStart.ashx
  3. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°Π΄Π°Ρ‡ΠΈ MSBuild’Π° для Microsoft Ajax Minifier: http://www.asp.net/ajaxLibrary/AjaxMinTask.ashx

Π’ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ Ρ…ΠΎΡ‡Ρƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎΠ± использовании ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ поколСния клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΎΡ‚ Microsoft β€” Microsoft Ajax Library, Π² связкС с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ JavaScript, Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

НСсколько способов ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JavaScript для ускорСния Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайта

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

ΠžΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°: для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JavaScript? Когда Π΄Π΅Π»ΠΎ касаСтся ΠΎΠ½Π»Π°ΠΉΠ½-бизнСса, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ восприятиС являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. НСваТно, Π²Π΅Π΄Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π½ΠΈΡˆΠ΅Π²Ρ‹ΠΉ Π±Π»ΠΎΠ³, SaaS сайт ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½. Если Π²Ρ‹ Π½Π΅ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ваш ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π½Π΅ Π½Π°Π΄Π΅ΠΉΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ купят.

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, любой Π±Ρ€Π΅Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ взаимодСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с сайтом, обращая Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ²Ρ‹Ρ… являСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² Π²Π΅Π±-сайтов это ΡƒΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΈΠ· Π²ΠΈΠ΄Ρƒ.

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-страницы с восьми Π΄ΠΎ Π΄Π²ΡƒΡ… сСкунд ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ коэффициСнт конвСрсии Π΄ΠΎ 74 ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ². Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ сайт ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ Π²Π°ΠΌ практичСски ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

Полная ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PageSpeed Insights

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ вашСго Π²Π΅Π±-сайта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Google PageSpeed Insights. Π­Ρ‚ΠΎ бСсплатный инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски сканируСт ΠΈ ΡΡ‚Π°Ρ†ΠΈΠΎΠ½Π°Ρ€Π½ΡƒΡŽ, ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΡƒΡŽ вСрсии сайта.

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

JavaScript. Быстрый старт

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ основы JavaScript Π½Π° практичСском ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎ созданию Π²Π΅Π±-прилоТСния

Π£Π·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

ΠšΡ€ΠΎΠΌΠ΅ обнаруТСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², PageSpeed Insights Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ. Π’Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ сайтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈΡΡŒ ΠΎ скорости Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹:

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

На Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ CSS ΠΈ JavaScript Π·Π°ΠΌΠ΅Π΄Π»ΡΡŽΡ‚ ваш сайт. Π₯отя это ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Π·Π°Π΄Π°Ρ‡Ρƒ для ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΡ… ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… инструмСнтов. Π”Π°Π²Π°ΠΉΡ‚Π΅ сразу рассмотрим, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JavaScript рСсурсы.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

ΠœΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° – это процСсс удалСния символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ читаСмости ΠΊΠΎΠ΄Π°.
НапримСр, однострочныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΈ исправлСниС Π±Π°Π³ΠΎΠ², Π½ΠΎ, Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€.

ΠŸΡ€ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΡ‹ ΡƒΠ±ΠΈΡ€Π°Π΅ΠΌ эти лишниС символы ΠΈ Ρ‚Π΅ΠΌ самым ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Ρ‚Ρ€Π°Ρ„Ρ„ΠΈΠΊ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PageSpeed Insights Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ссылку Β«ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΒ» ΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹ΠΉ рСсурс Ρ‡Π΅Ρ€Π΅Π· систСму управлСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ (CMS) ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· FTP.

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

НапримСр, Ссли Π²Π΅Π±-сайт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° WordPress, Ρ‚ΠΎΠ³Π΄Π° вСсь ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ доступСн для рСдактирования Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Β». Π•Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄Β» ΠΏΠ°Π½Π΅Π»ΠΈ администрирования.

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π°

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡ€Π° ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. НавСрноС, самый Π»Π΅Π³ΠΊΠΈΠΉ способ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ – это ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ инструмСнты. Если Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ CSS ΠΈ JavaScript, Ρ‚ΠΎ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌΠΈ инструмСнтами для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ CSS Minifier ΠΈ JSCompress.

ИспользованиС CSS Minifier

CSS Minifier – это бСсплатный ΠΈ простой инструмСнт для сТатия CSS-рСсурсов. ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π·Π°Π΄Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ сТатия ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«MinifyΒ».

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСкунд Π΄ΠΎ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Π² зависимости ΠΎΡ‚ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Новый ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· интСрфСйс CMS ΠΈΠ»ΠΈ FTP.

Π’Π°ΠΆΠ½ΠΎ: Π’ качСствС ΠΌΠ΅Ρ€Ρ‹ прСдостороТности, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΏΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ измСнСния. ΠŸΡ€ΠΎΡ‰Π΅ всСго ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ„Π»Π°ΠΉΠ½ ΠΊΠΎΠΏΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ΅.

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сработала Π»ΠΈ минимизация, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ тСст Ρ‡Π΅Ρ€Π΅Π· PageSpeed Insights. CSS Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±Ρ‹Π» сТат, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ большС Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ сообщСниС Β«ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ CSSΒ».

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

ИспользованиС асинхронной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для JavaScript

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ CSS, оптимизация JavaScript выполняСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· JSCompress, Π½ΡƒΠΆΠ½ΠΎ сначала Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ асинхронной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π°.

ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉΒ», Π½ΠΎ, Π² контСкстС JavaScript, Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΈΠ΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ посрСдством Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ динамичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ тэг async Π² ΠΊΠΎΠ΄ Π²Ρ‹Π·ΠΎΠ²Π° .js-Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² исходном HTML-ΠΊΠΎΠ΄Π΅ вашСго Π²Π΅Π±-сайта. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

<script src=»yourscript.js» async></script>

<script src=»yourscript.js» async></script>

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ этой ссылкС.

ОбъСдинСниС JavaScript-Ρ„Π°ΠΉΠ»ΠΎΠ²

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎΠ± ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ JavaScript, это объСдинСниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΉ страницС. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ количСство HTTP-запросов Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ, соотвСтствСнно, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы.

НапримСр, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ нСсколько .js Ρ„Π°ΠΉΠ»ΠΎΠ² Π² исходном ΠΊΠΎΠ΄Π΅:

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

JavaScript. Быстрый старт

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ основы JavaScript Π½Π° практичСском ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎ созданию Π²Π΅Π±-прилоТСния

Π£Π·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

<script src=»http://www.yoursite.com/menu.js»></script> <script src=»http://www.yoursite.com/tools.js»></script> <script src=»http://www.yoursite.com/footer.js»></script>

<script src=»http://www.yoursite.com/menu.js»></script>

<script src=»http://www.yoursite.com/tools.js»></script>

<script src=»http://www.yoursite.com/footer.js»></script>

Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΎΠ΄ΠΈΠ½ JavaScript-Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π°, ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ всС Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·:

<script src=»http://www.yoursite.com/all.js»></script>

<script src=»http://www.yoursite.com/all.js»></script>

Π§Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‰Π΅ большС ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ скриптов, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тэги http ΠΈ type. НапримСр, вмСсто:

<script src=»http://www.yoursite.com/all.js» type=»text/javascript»></script>

<script src=»http://www.yoursite.com/all.js» type=»text/javascript»></script>

ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

<script src=»//www.yoursite.com/all.js»></script>

<script src=»//www.yoursite.com/all.js»></script>

ИспользованиС JSCompress

НаконСц, JSCompress Ρ‚Π°ΠΊ ΠΆΠ΅ прост Π² использовании, ΠΊΠ°ΠΊ ΠΈ CSS Minifier. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ΄ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π° ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Compress JavaScriptΒ».

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

Π”Π°Π»ΡŒΡˆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«OutputΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сТатый JavaScript:

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ функционирования являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ случаСтся, ΠΊΠΎΠ³Π΄Π° элСмСнты страницы ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΈ ΠΊΠΎΠ΄ остаСтся Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ.

Найти Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС инструмСнты для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Google Chrome. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π³Π»Π°Π²Π½ΠΎΠ΅ мСню, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Β«Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструмСнты» ΠΈ Π·Π°Ρ‚Π΅ΠΌ Β«Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²Β».

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΠΉ страницС, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΉΡΡ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° Β«CoverageΒ» Π² подсСкции Β«More ToolsΒ» мСню настроСк.

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

Π’Π°ΠΊ Π²Ρ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Β«CoverageΒ» Π² Developer Console. Π”Π°Π»ΡŒΡˆΠ΅ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° Β«Instrument CoverageΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ.

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

ПослС окончания ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ список рСсурсов с объСмом Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² Π½ΠΈΡ… ΠΊΠΎΠ΄Π° Π² Π±ΠΈΡ‚Π°Ρ…. Π­Ρ‚ΠΎΡ‚ список отобраТаСтся справа Π² многостолбцовом ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ с Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹ΠΌ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ.

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

Если Π²Ρ‹ провСряСтС ΠΊΠΎΠ΄ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·, Ρ‚ΠΎ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π² этом спискС сочСтаниС рСсурсов CSS ΠΈ JavaScript. ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этим списком Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ всСх Π»ΠΈΡˆΠ½ΠΈΡ… элСмСнтов ΠΊΠΎΠ΄Π° ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ являСтся Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ процСссом. Но Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΎΠΏΡ‹Ρ‚ взаимодСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚ΠΎ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ сСбС, ΠΊΠΎΠ³Π΄Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ снова ΠΏΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ рСсурсы.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ CSS ΠΈ JavaScript ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд ΠΎΡ‡Π΅Π½ΡŒ слоТным. Но, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ инструмСнты ΠΈ web host, Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это.

Автор: Gary Stevens

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: https://www.sitepoint.com/

РСдакция: Команда webformyself.

Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

JavaScript. Быстрый старт

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ основы JavaScript Π½Π° практичСском ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎ созданию Π²Π΅Π±-прилоТСния

Π£Π·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Как ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΈ JS для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайтов

ВСрстка-ΠœΠ°ΡΡ‚Π΅Ρ€. ΠžΡ‚ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π΄ΠΎ вСрстки популярных шаблонов

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ вСрстку сайтов с нуля

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

ΠœΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ CSS ΠΈ Javascript Π² Website ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ASP.NET / Habr

ΠŸΡ€ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ javascript ΠΈ css Π·Π½Π°ΡŽΡ‚ всС. Ну Ссли ΠΊΡ‚ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚, Ρ‚ΠΎ, Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅, это ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ объСма Ρ„Π°ΠΉΠ»ΠΎΠ² Π·Π° счСт удалСния ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, пСрСносов строк ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ. ОсобСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ½ΠΎ для ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ сайтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΆΠ΅ Π²ΠΈΠ·ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡ€Π°Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ своСй ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. Но наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² локальной сСти, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… ΠΈΠ·ΠΎ дня Π² дСнь, поэтому ΠΌΡ‹ Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя совсСм Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈΡΡŒ ΠΎΠ± ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ скриптов ΠΈ стилСй. Пока Π½Π΅ стали ΠΏΠ»ΠΎΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ExtJS.

Бозданная страничка со всСми ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ скриптами ΠΈ стилями вСсит большС 5 Мб (ΠΎΠΊΠΎΠ»ΠΎ 200 Ρ„Π°ΠΉΠ»ΠΎΠ²). Одно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сгСнСрированноС DOM-Π΄Π΅Ρ€Π΅Π²ΠΎ Π² ΠΊΠΎΠ΄Π΅ HTML содСрТит Π±ΠΎΠ»Π΅Π΅ 500 000 Π±Π°ΠΉΡ‚. Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с систСмой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· 5 сСкунд послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы (инициализация скриптов, ExtJS ΠΈ Ρ‚.ΠΏ.).

Как оказалось, нСсмотря Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ локальной сСти Ρƒ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ° ΠΈ Ρ‡Π°ΡΡ‚ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ страницами (Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ встроСнноС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅), ΠΈΠ½ΠΎΠ³Π΄Π° с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ страниц Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство запросов ΠΊ сСрвСру ΠΈ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ExtJS Π² IE8.

Для ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ скриптов сначала скачал Google Closure Compiler, ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных, Π΄Π° ΠΈ корпорация Π΄ΠΎΠ±Ρ€Π° ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ Π½Π΅ сдСлаСт…

Google Closure Compiler

ПолоТил Ρ„Π°ΠΉΠ»ΠΈΠΊ compressor.jar Π² ΠΏΠ°ΠΏΠΊΡƒ со скриптами. Π§Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ java. Π‘Π΄Π΅Π»Π°Π» bat-Ρ„Π°ΠΉΠ»ΠΈΠΊ запуска с двумя ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, послСдняя ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… всСго лишь Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π² 10 сСкунд, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΡΠΏΠ΅Ρ‚ΡŒ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки ΠΈ самому Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ Π²ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ слил всС скрипты Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», вСс ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² ΠΏΠΎΠ»Ρ‚ΠΎΡ€Π° Ρ€Π°Π·Π° (это содСрТимоС bat-Ρ„Π°ΠΉΠ»Π°):
cd %0\..\
java -jar compiler.jar --js=NavigationJS.js --js=SSSC.js (здСсь Π΅Ρ‰Π΅ ΠΊΡƒΡ‡Π° Ρ„Π°ΠΉΠ»ΠΈΠΊΠΎΠ² Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ)  --js_output_file=bcr_master.min.js
ping -n 1 -w 100000 192.168.254.254 >nul

ВсС просто ΠΈ элСгантно, провозился ΠΌΠΈΠ½ΡƒΡ‚ ΠΏΡΡ‚ΡŒ. Команда cd %0\..\ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π° Π½ΡƒΠΆΠ½Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ дальнСйшСС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ происходило Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ располоТСн сам .bat Ρ„Π°ΠΉΠ», Π° Π½Π΅ с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ послС запуска ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Но Ρ‚ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° идСя ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ JS, Π½ΠΎ ΠΈ CSS Ρ„Π°ΠΉΠ»Ρ‹, Π° Google Closure этого Π΄Π΅Π»Π°Ρ‚ΡŒ, ΡƒΠ²Ρ‹, Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π΅ΡˆΠΈΠ» ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ всС Π½Π° YUI Compressor, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ², ΠΈ ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ сТимаСт CSS.

YUI Compressor

Для объСдинСния всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π» написан Π±Π°Ρ‚Π½ΠΈΠΊ ΡƒΠΆΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большСго объСма, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ этот YUI Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² строкС сразу нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² β€” Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ€ΠΌΠ»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ. А Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ»Π΅ΠΏΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ copy, Π° ΡƒΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΌ Π΅Π³ΠΎ ΡΠΆΠ°Ρ‚ΡŒ юай компрСссором.

ΠšΡΡ‚Π°Ρ‚ΠΈ, Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ β€” всС ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ javascript Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π° Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой, Π° Π»ΡƒΡ‡ΡˆΠ΅ с пСрСносом Π½Π° слСд.строку. Π’ΠΎΠΎΠ±Ρ‰Π΅ Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой, ΠΈ Ρ€Π΅ΡˆΠ°Ρ€ΠΏΠ΅Ρ€ Π»ΡŽΡ‚ΠΎ Π½Π΅Π³ΠΎΠ΄ΡƒΠ΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚ наш javascript.

cd %0\..\
copy /b .\..\..\Scripts\JSON.js + (Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΈΠΊΠΎΠ²)  + Bids.js combined.js
java -jar yuicompressor-2.4.8.jar combined.js --type js -o combined.min.js --charset cp-1251
copy /b combined.min.js +  (Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠΆΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΈΠΊΠΎΠ²)  + .\..\..\Scripts\jquery\plugins.fileupload.min.js mbcrfull.min.js
del combined.min.js
del combined.js

::copy /b .\..\..\Styles\MPMessage.css +  (Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΈΠΊΠΎΠ²)  + .\..\..\BCR\Styles\Kondor.css combined1.css
::java -jar yuicompressor-2.4.8.jar combined1.css -o .\..\..\BCR\Styles\mbcrfull.min.css --charset cp-1251
::del combined1.css

::copy /b .\..\..\Styles\jquery\ui.all.css + (Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΈΠΊΠΎΠ²) + .\..\..\Styles\jquery\jqueryslidemenu.css combined2.css
::java -jar yuicompressor-2.4.8.jar combined2.css -o .\..\..\Styles\jquery\mbcrfull.min.css --charset cp-1251
::del combined2.css

::ping -n 1 -w 10000 192.168.254.254 >nul

Π’Π°ΠΊ выглядит Ρ„Π°ΠΉΠ» запуска компрСссора Π² настоящСС врСмя. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, строки ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ CSS Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² силу спСцифики нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. На самом Π΄Π΅Π»Π΅ Π² ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ CSS Π΅ΡΡ‚ΡŒ масса тонкостСй, Π° ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π° ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» β€” Π·Π°Π΄Π°Ρ‡Π° Π½Π΅ ΠΈΠ· Π»Π΅Π³ΠΊΠΈΡ…:

  • Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½ΡƒΠΆΠ½ΠΎ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° использованиСм ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ изобраТСниям. Π‘Ρ‚ΠΈΠ»ΠΈ ExtJS ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ основаны Π½Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… путях, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΎΠ½ΠΈ сразу Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΈΠ· нашСго объСдинСния (кстати, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ своСм ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹).
  • Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π² CSS Ρ„Π°ΠΉΠ»Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹@import. Π­Ρ‚ΠΎ Π°Π΄.
  • Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ стили ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΏΠ°ΠΏΠΎΠΊ, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, Ρ‚Π°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Ρƒ нас получаСтся Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ нСбольшой. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ CSS ΠΏΠΎΠΊΠ° ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ. (МоТно Π±Ρ‹Π»ΠΎ ΠΈ Π½Π° Google Closure Compiler ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС)

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ самоС интСрСсноС β€” Π±Π°Ρ‚Π½ΠΈΠΊ Ρƒ нас Π΅ΡΡ‚ΡŒ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ скрипты Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΈΡ… ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠΉ вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ВсС Π²Ρ€ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒβ€¦. ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· запуская скрипт.

Автоматизация ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Π² Ρ€Π΅Π»ΠΈΠ·

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΄Π²Π΅ Π²Π΅Ρ‚ΠΊΠΈ Π² SVN β€” рабочая (DEV) ΠΈ рСлизная. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ вСрсии Π½Π° сСрвСр ΠΌΡ‹ выполняСм merge всСх (Π½Ρƒ ΠΈΠ»ΠΈ Π½ΡƒΠΆΠ½ΠΎΠΉ части) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π±ΠΈΠ»Π΄ΠΈΠΌ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ (Ссли всС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ) ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠΌ. И Π½Π°Π΄ΠΎ, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ самому постоянно Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ этот Π±Π°Ρ‚Π½ΠΈΠΊ ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ Π² Ρ€Π΅Π»ΠΈΠ·, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° всСми Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π»ΠΈ это Π΄Π΅Π»Π°Ρ‚ΡŒ.

И Ρ‚ΡƒΡ‚ Π½Π°ΠΌ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ приходят Hook Scripts Π² TortoiseSVN!

Π’ настройках ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° SVN Π·Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Hook Scripts ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ‚Π°ΠΌ ΠΏΠ°ΠΏΠΊΡƒ нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ сам Π±Π°Ρ‚Π½ΠΈΠΊ. Π’ опциях Hook Type Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«Start-Commit HookΒ«, Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипт запускался ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ отобразится ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.


Настройка запуска ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ

Вуаля, всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π½Π΅ Π½Π°Π΄ΠΎ Π½ΠΈ Π·Π° ΠΊΠ΅ΠΌ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ!

Π•ΡΡ‚ΡŒ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊΡƒΡ‡Π° встроСнных Π² visual studio срСдств объСдинСния ΠΈ ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π½ΠΎ ΠΈΡ… Ρ‚ΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ машинС, Π° Π΅Ρ‰Π΅ Π² Π½ΠΈΡ… Ρ‚ΠΎΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ тонкостСй. Π”ΠΎ этого Ρƒ нас использовался встроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ Composite Scripts, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ достаточной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² сравнСнии с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ YUI ΠΈΠ»ΠΈ Google closure Compiler.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Javascript с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Google Closure Compiler / Habr


Google ΠΎΡ‚ΠΊΡ€Ρ‹Π»Π° исходныС ΠΊΠΎΠ΄Ρ‹ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались ΠΈΡ… сотрудниками ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠ°ΠΊ Google Docs, Google Maps ΠΈ GMail.

Π’ числС этих инструмСнтов имССтся достаточно интСрСсная ΡˆΡ‚ΡƒΠΊΠ°, называСмая Google Closure Compiler. Данная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ javascript-ΠΊΠΎΠ΄, Π·Π° счСт Ρ‡Π΅Π³ΠΎ ΠΎΠ½ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ быстрСС.

Β«ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Β» ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎ ссылкС closure-compiler.googlecode.com/files/compiler-latest.zip (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 3Мб), Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ Π² дСйствии достаточно ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу closure-compiler.appspot.com.
ΠŸΠ΅Ρ€Π΅Π΄ Π’Π°ΠΌΠΈ откроСтся ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° 2 части: слСва Π’Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ свой ΠΊΠΎΠ΄, Π° справа ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ функция Hello World

НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«CompileΒ» для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· рисунка, этот простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ «сТался» Π½Π° 40.22%.

Но ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΆΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ побольшС. Для этого Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«resetΒ», Π² ΠΏΠΎΠ»Π΅ Β«Add a URLΒ» Π²Π²ΠΎΠ΄ΠΈΠΌ Β«habrahabr.ru/js/1257170514/tm/validation.js?revision=29Β» ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«AddΒ» ΠΈ Β«CompileΒ»

Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ «сТался» Π½Π° 68.40%. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΏΠΎΠ»Π΅ Β«Add a URLΒ» Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ списка ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ·Π²Π΅ΡΡ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒΡΡ.

БСйчас ΡƒΠΆΠ΅ сущСствуСт достаточно ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² javascript ΠΊΠΎΠ΄ΠΎΠ², Π½ΠΎ, ΠΊΠ°ΠΊ утвСрТдаСтся Π½Π° сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Closure Compile ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ javascript Π»ΡƒΡ‡ΡˆΠ΅.

Π’Π°ΠΊΠΆΠ΅ Google ΠΎΡ‚ΠΊΡ€Ρ‹Π» исходныС ΠΊΠΎΠ΄Ρ‹ Π΅Ρ‰Ρ‘ Π΄Π²ΡƒΡ… интСрСсных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²:
Closure Library ΠΈ Closure Templates

javascript — ΠΊΠ°ΠΊ ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ JS Ρ„Π°ΠΉΠ»Ρ‹ Π² порядкС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ…Ρ€ΡŽΠΊΠ°Ρ‚ΡŒ-Π²Π½ΠΎ-ΡƒΡ€ΠΎΠ΄ΠΎΠ²Π°Ρ‚ΡŒ?

Π₯ΠΎΡ€ΠΎΡˆΠΈΠ΅ вопросы!

1) ΡƒΡ€ΠΎΠ΄ΠΎΠ²Π°Ρ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ назначСния , Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ находятся Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ исполнСния Π½Π° Π΄Π½Π΅ , Π½ΠΎ это , каТСтся , Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ порядок Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ°Π·Π½Π΅ΠΉ.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ функция JQuery Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ свои Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π²Π΅Π΄Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π²Ρ‹Π΅, Ссли Π²Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Jquery упоминаСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΡƒΡ€ΠΎΠ΄ΠΎΠ²Π°Ρ‚ΡŒ находится Π² Gruntfile.

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ этот ΠΊΠΎΠ½Ρ„ΠΈΠ³:

uglify: {
    options: {
        sourceMap: true
    },
    build: {
        files: {
            'public/all.min.js': ['public/js/vendor/jquery-1.10.2.min.js', 'public/js/*.js'],
        }
    }
}

2) Π― Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ способ для достиТСния этой Ρ†Π΅Π»ΠΈ. Π­Ρ‚ΠΎ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Π±-Ρ€Π°ΠΌΠΊΠΈ, Ρ€Π°ΠΌΠΊΠΈ шаблонного ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ трСбования Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅. Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ экспрСсс + Π½Π΅Ρ„Ρ€ΠΈΡ‚ ΠΈ Π² ΠΌΠΎΠ΅ΠΌ основном ΠΌΠ°ΠΊΠ΅Ρ‚Π΅ Π½Π΅Ρ„Ρ€ΠΈΡ‚Π° Ρƒ мСня Π΅ΡΡ‚ΡŒ:

if process.env.NODE_ENV === 'production'
  script(src='/all.min.js')
else
  script(src='/js/vendor/jquery-1.10.2.min.js')
  script(src='/js/someScript.js')
  script(src='/js/otherScript.js')

Π’ ΠΌΠΎΠ΅ΠΉ package.json Ρƒ мСня Π΅ΡΡ‚ΡŒ:

"scripts": {
  "postinstall": "grunt"
},

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ , Ρ‡Ρ‚ΠΎ , ΠΊΠΎΠ³Π΄Π° я Π±Π΅Π³Ρƒ npm installΠ½Π° Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ (Π½Π° Heroku) Ρ…Ρ€ΡŽΠΊΠ°Ρ‚ΡŒ запускаСтся Π½Π° ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ / Concat ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся с NODE_ENV=productionΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Javascript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎ я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ слуТил ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° JavaScripts для облСгчСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π”Π²Π΅ Π½ΠΈΠΆΠ½ΠΈΠ΅ стороны ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

  • Π― Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π²Π° списка Ρ„Π°ΠΉΠ»ΠΎΠ² сцСнариСв Π² синхронизации (Π² Gruntfile ΠΈ Π² layout.js) я Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ *.jsΠ² Gruntfile , Π½ΠΎ это Π½Π΅ всС Π½ΠΎΠΌΠ΅Ρ€Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ список JavaScripts Π² Gruntfile ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅Ρ„Ρ€ΠΈΡ‚-шаблон ΠΈΠ· этого , Π½ΠΎ это каТСтся излишним для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².
  • Если Π²Ρ‹ Π½Π΅ довСряСтС своСму Grunt ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° Π²Ρ‹ Π² основном Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ запуск прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NODE_ENV=productionлокально , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ , Ρ‡Ρ‚ΠΎ минификация Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Ρ‚Π°ΠΊ , ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈ.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *