Π£Π²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΉΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ JavaScript
Π‘Π°ΠΉΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΡΡΡΠ΅Π΅, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ JS-ΠΊΠΎΠ΄Π°. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΠΎ ΡΠ°ΠΉΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ β ΠΈΡ Π½Π°Π΄ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠΎΠΌ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠ»ΠΈ ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°Π»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π½ΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄ΡΠΌΠ°Π»ΠΈ. ΠΠ΅ Π½Π°Π΄ΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΉ Ρ Π»Π°ΠΌ.
ΠΡΠ»ΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ
-ΡΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠ°ΠΉΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½, ΡΠΎ Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΡΠΈΡ
JS-ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ (Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ΅ΠΊΡΠΈΠΈ body). ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΡΡΡΡ Π½Π΅ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΈΡ
ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅ ΠΎΡ ΡΠ°ΠΉΡΠ°. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ»ΠΈΡΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π°ΠΉΠ΄Π΅ΡΠ° ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½Ρ ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΡΡΡΡ Π»ΡΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ±ΡΡΡΡΠ΅Π΅ ΡΠ²ΠΈΠ΄ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π° Π½Π΅ ΠΆΠ΄ΡΡ ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π»ΠΈΡΠ½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π΄ΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠ΅Π· 5 ΡΠ΅ΠΊΡΠ½Π΄ ΠΊΡΠ°ΡΠΈΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π»ΠΈΡΡΠ½ΡΠ»ΡΡ ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΠΉ Π±Π°Π½Π½Π΅Ρ ΠΈΠ»ΠΈ ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΏΠΎΡΡΠΈΡΠ°Π»ΠΈ.
ΠΠ°Π³ΡΡΠΆΠ°ΠΉΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Ρ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², Ρ Π΄ΡΡΠ³ΠΈΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ CDN β Π΄Π°ΠΆΠ΅ Ρ ΡΠ°ΠΌΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² ΡΠ°ΠΉΠ»Ρ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π² ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΡΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠΈΠ»Π΅ΠΉ ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΠΎ ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π»ΠΈΠΌΠΈΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ JS-ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° (ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Π°), ΡΠΎ ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ Π±ΡΡΡΡΠ΅Π΅ Π·Π° ΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡΡΡ Ρ Β«Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΡ
Β» Π²Π½Π΅ΡΠ½ΠΈΡ
Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². ΠΡΠ»ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΠΈΠ»ΠΈ ΡΡΠ°Π½Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ, ΡΠΎ Π±ΡΠ΄Π΅Ρ Β«ΡΠΎΡΠΌΠΎΠ·ΠΈΡΡΒ» Π²Π΅ΡΡ Π²Π°Ρ ΡΠ°ΠΉΡ, Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π±ΡΠ΄ΡΡ Β«Π»ΡΠ±ΠΎΠ²Π°ΡΡΡΡΒ» Π±Π΅Π»ΡΠΌ ΡΠΊΡΠ°Π½ΠΎΠΌ. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΡΠΎ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΡΠΈ Π΄ΠΎΠΌΠ΅Π½Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Ρ.
JS Π½Π°Π΄ΠΎ ΡΠΆΠ°ΡΡ, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ², ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠ² ΡΡΡΠΎΠΊ, ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ ΡΡΠΊΠΎΡΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π² production-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ. ΠΠ»Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠΆΠΈΠΌΠ°ΡΡΠΈΠ΅ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΠΈΠ΅ JavaScript, β UglifierJS, JSMin, Closure Compiler, YUI Compressor. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΈΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ». ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² 50 Kb ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΡΡΡΡΠ΅Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ 10 ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎ 5 Kb, ΠΎΡΠ΄Π°ΡΠ° ΡΠ°ΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠ΅Π½ΡΡΠ΅ Π³ΡΡΠ·ΠΈΡ ΡΠ΅ΡΠ²Π΅Ρ, Π΄Π° ΠΈ ΡΠΆΠ°ΡΠΈΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π±ΠΎΠ»ΡΡΠΈΡ
ΡΠ°ΠΉΠ»Π°Ρ
.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ GZIP Π΄Π»Ρ ΡΠΆΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ . Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠΈ ΠΈ ΠΎΡΠ΄Π°ΡΠ° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΆΠ°ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π‘ΠΆΠ°ΡΠΈΠ΅ Β«Π½Π° Π»Π΅ΡΡΒ» Π½Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ Π½Π° Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π»ΡΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΡΡΠΈΡΡΠΉΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° β Π½Π΅ Π·Π°ΡΡΠ°Π²Π»ΡΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠΊΡΠΈΠΏΡ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π² ΠΎΡΠ²Π΅ΡΠ΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° (Expires ΠΈΠ»ΠΈ Cache-Control max-age, Last-Modified ΠΈΠ»ΠΈ ETag).
ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π±Π΅Π· Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΠΈ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π΄ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ° Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΡΠ° Π½Π΅ ΡΡΠΎΠΈΡ Π½Π° Π²ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ jQuery. ΠΡΠ»ΠΈ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ΅ΠΉ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ°ΠΉΡΠ° ΠΌΠΎΠΆΠ΅Ρ Ρ Π²Π°ΡΠΈΡΡ 30 ΡΡΡΠΎΡΠ΅ΠΊ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ js-ΠΊΠΎΠ΄Π°, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠΌΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ.
ΠΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ javascript ΠΊΠΎΠ΄Π° (ΡΠ°ΡΡΡ 1)
ΠΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ β ΡΠ°Π·ΠΌΡΡΠ»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΈ ΠΏΠΎΠΈΡΠΊΠΎΠ² Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ. ΠΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΈΠ· ΡΡΠ°ΡΠ΅ΠΉ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΌΠΎΠ»ΠΎΠ΄ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±Π΅Π· ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΈΡΠΈΠ½. ΠΠ°ΡΠ°ΡΡΡΡ Π°Π²ΡΠΎΡΡ ΡΡΠ°ΡΠ΅ΠΉ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΈΠ΄Π΅Π» Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΅ΡΡΠ΅Π· ΡΠΏΠΎΡΡΡ ΠΏΡΠΎ Π±ΡΡΡΡΡΠ΅ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡΡ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ. ΠΡΠΈ ΡΠΏΠΎΡΡ ΠΏΡΠΎΡΠ²Π΅ΡΠ°ΡΡ, ΠΏΠΈΡΡΡΡΡ ΡΠ΅ΡΡΡ. ΠΡΠ°Π²Π΄Π° ΡΠ΅Π±ΡΡΠ° Π·Π°Π±ΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ°ΠΌΡΠΌ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ JS ΡΠ²Π»ΡΠ΅ΡΡΡ DOM.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠΈ ΡΠΈΠΊΠ»Π° Π½Π° Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΡ Π²Π΅ΡΡΠΈΡ, ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
(Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΠΎΠ±Π»Π°ΡΡΡΠΌ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ) ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ Π½Π° 5%, Π½Ρ Π½Π° 10%. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ
ΠΏΠΎΡΠ΅ΡΡ Π² ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ.
// 1
for (var i = 0; i
ΠΡΠΎΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½Π°, Π½ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ. Π’ΡΠ΅ΡΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½Π°, Π½ΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΠ½Π° ΡΠ»Π΅ΡΡ (ΠΏΡΠΎΡ
ΠΎΠ΄ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π½Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π΅Π½ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ).
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ ΡΠ°ΠΌΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡ ΠΊΠΎΠ΄ ΡΠΈΠΊΠ»ΠΎΠ², ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ Π² ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΡΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ, Π½Π΅ Π³ΠΎΠ²ΠΎΡΡ ΡΠΆΠ΅ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΎΡΡΡΠ΅Π½ΠΈΡΡ . ΠΠ°ΠΊΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ°, ΡΠΊΡΠΈΠΏΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ Π·Π° 10ΠΌΡ ΠΈΠ»ΠΈ 9ΠΌΡ.
ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π»Ρ ΡΡΠ°ΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ². ΠΠΎ ΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΠΈ: Π½Π°Π΄ΠΎ Π»ΠΈ Π΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ (Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π»ΠΈ) ΡΠ°Π±ΠΎΡΡ ΡΡΠ°ΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ². ΠΠ°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½ΡΠΌ ΠΈ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΠΌ. ΠΡΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ.
Π Π²ΠΎΡ ΡΡΠ΅ΡΠΈΠΉ ΠΊΠΎΠ½Π΅Ρ β ΡΡΠΎ DOM. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ·Π»Π° Π² DOM-e Π²Π΅Π΄Π΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ ΠΊΠ°ΡΠΊΠ°Π΄ ΡΠ΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°: ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² children, parentNode, nextSibling Ρ Π½ΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠ΅ Β«ΡΠ΅ΠΏΠ»ΡΡΡΡΡΒ» ΡΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ liveCollections, ΡΡΠΈΠ³Π³Π΅Ρ repaint ΠΈ reflow, ΠΎΡΠΈΡΡΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ innerHTML, ΡΠΎ Π΅ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΡΠΈΠ½Π³ ΡΠ΅ΠΊΡΡΠ° Π² DOM ΠΌΠΎΠ΄Π΅Π»Ρ.
Π£Π·ΠΊΠΈΡ ΠΌΠ΅ΡΡ Π² DOM-Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. Π‘Π°ΠΌΡΠ΅ ΡΡΠΆΠ΅Π»ΡΠ΅ β ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ·Π»ΠΎΠ². ΠΡΠΈ ΡΠΎΠΌ Π²ΡΠ΅ΠΌΡ ΠΎΡΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΎΠ±ΡΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ DOM Π΄Π΅ΡΠ΅Π²Π°, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ°Π±Π»ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΡΠ°Π²ΠΈΠ». ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΡΠΎΡΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΡΠ°ΡΠ·Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΈ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠ°ΡΠ°ΡΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π΄Π²ΠΈΠΆΠΊΠΎΠ². Π ΡΡΡ ΠΌΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌ Π΄ΡΡΠ³ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ: ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°ΡΡ ΡΠ°Π·Π½ΡΠΉ ΠΏΡΠΈΡΠΎΡΡ Π² ΡΠ°Π·Π½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ . Π§Π΅ΠΌ Π΄ΡΠ΅Π²Π½Π΅Π΅ Π±ΡΠ°ΡΠ·Π΅Ρ, ΡΠ΅ΠΌ Π²Π΅ΡΠΎΡΡΠ½Π΅Π΅, ΡΡΠΎ Ρ ΠΈΡΡΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Π΄Π°Π΄ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ.
Π‘Π½ΠΎΠ²Π° ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ Ρ ΡΠΈΠΊΠ»Π°ΠΌΠΈ: Π½Π΅ ΡΡΠΎΠΈΡ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΊΠΎΠ΄, ΠΏΠΎΠ΄ΡΡΡΠ°ΠΈΠ²Π°Ρ Π΅Π³ΠΎ ΠΏΠΎΠ΄ Π±ΡΠ°ΡΠ·Π΅Ρ. ΠΡΡΡΡ ΡΡΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΡΡΡΠΎΠΈΡΠ΅Π»ΠΈ.
Π― ΠΊ ΡΠ΅ΠΌΡ Π²Π΅Π΄Ρ: ΡΠΌΡΡΠ»Π° Π² ΠΎΡΠΎΠ±ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π½Π΅Ρ. Π‘Π°ΠΌΡΠΉ ΡΠ°Π·ΡΠΌΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ β Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ Π΅ΡΡΡ, ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ. Π ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ, Π½Π°ΡΠ°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ DOM.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ node.js ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°Π½ΠΎ: ΡΡΠ°ΡΠΎΠ΅ http node.js ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·ΡΠΎΡΡΠ°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° Π½Π΅Π³ΠΎ.ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠΉΡΠΈ ΠΏΡΡΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΡΠ»Π°Π±ΡΠ΅ ΠΌΠ΅ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π±ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΊΠΎΡΠΈΡΡΡΡ Π½Π΅ ΡΡΠΎΠ³Π°Ρ Π½ΠΈ ΡΡΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π° π
ΠΡΠ΅Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΠΊΠ°Ρ!
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌΡΡ Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΎΠΉ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠ΅Π½Π½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² Π·Π° 1 ΡΠ΅ΠΊΡΠ½Π΄Ρ: rps.
ΠΠ°ΠΏΡΡΠΊΠ°ΡΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ 1 Π²ΠΎΡΠΊΠ΅ΡΠ° (1 ΠΏΡΠΎΡΠ΅ΡΡΠ°), Π·Π°ΠΌΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠΎΠ΄Π° Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠΌΠΈ β Π°Π±ΡΠΎΠ»ΡΡΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ Π²Π°ΠΆΠ½Π°, Π²Π°ΠΆΠ½Π° ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
Π ΡΠΈΠΏΠΈΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ ΡΠ°Π·Π½ΡΡ ΡΠΎΡΡΠΎΠ² Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π½Π°ΠΉΡΠΈ ΡΠ°ΠΌΡΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°ΡΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π£ΡΠΈΠ»Ρ Π²ΠΈΠ΄Π° request-log-analizer ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΈΠ·Π²Π»Π΅ΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· Π»ΠΎΠ³ΠΎΠ².
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΏΡΠ»ΡΡΡ ΠΈΡ Π²ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ yandex-tank-Π°) β ΠΏΠΎΠ»ΡΡΠΈΠΌ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΈΠ»Ρ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΠΎ Π΄Π΅Π»Π°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΊΡΠ΄Π° ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π±ΡΡΡΡΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ Π·Π°ΠΏΡΠΎΡΠΎΠ² (Π° ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΈΠ·ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ, ΠΈ Ρ.Π΄.). ΠΠΎΠΉ Π²ΡΠ±ΠΎΡ β wrk. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΡΠΎΠ² Π½Π΅ Π²Π΅Π»ΠΈΠΊΠΎ β ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΡΠ΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ.
Π‘ΡΠ°Π·Ρ Π½Π°Π΄ΠΎ ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΡΠΎ Π² ΠΏΠ»Π°Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΠ ΠΈ Ρ.ΠΏ. ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ, Π²ΡΠ΅ ΡΠΏΠΈΡΠ°Π΅ΡΡΡ Π² cpu: ΠΏΡΠΈ ΡΠ΅ΡΡΠ°Ρ Π²ΠΎΡΠΊΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅Ρ 100% cpu.
ΠΠ° ΠΏΡΠΎΠ΄Π°ΡΠ΅Π½ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ node.js Π²Π΅ΡΡΠΈΠΈ 6 β Ρ Π½Π΅Ρ ΠΈ Π½Π°ΡΠ½Π΅ΠΌ:
Requests/sec: 1210
ΠΡΠΎΠ±ΡΠ΅ΠΌ Π½Π° 8ΠΉ Π½ΠΎΠ΄Π΅:
Requests/sec: 2308
10Ρ Π½ΠΎΠ΄Π°:
Requests/sec: 2590
Π Π°Π·Π½ΠΈΡΠ° ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°. ΠΠ»ΡΡΠ΅Π²ΡΡ ΡΠΎΠ»Ρ ΡΡΡ ΠΈΠ³ΡΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ v8 β ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠ»ΠΎΡ
ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΠ΅Π³ΠΎΡΡ v8 ΠΊΠΎΠ΄Π° ΠΎΡΡΠ°Π»ΠΎΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ. Π ΡΡΠΎΠ±Ρ Π½Π΅ Π±ΠΎΡΠΎΡΡΡΡ Ρ Π²Π΅ΡΡΡΠ½ΡΠΌΠΈ ΠΌΠ΅Π»ΡΠ½ΠΈΡΠ°ΠΌΠΈ ΠΈΡΡΠ΅Π·Π½ΡΠ²ΡΠΈΠΌΠΈ Π² node.js v8 β Π»ΡΡΡΠ΅ ΡΡΠ°Π·Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΆΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π°.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΠΏΠΎΠΈΡΠΊΡ ΡΠ·ΠΊΠΈΡ ΠΌΠ΅ΡΡ: Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π»ΡΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ β flamegraph. Π Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° 0x ΠΏΠΎΠ»ΡΡΠΈΡΡ flamegraph ΡΡΠ°Π»ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ β Π·Π°ΠΏΡΡΠΊΠ°ΠΌ 0x Π²ΠΌΠ΅ΡΡΠΎ node: 0x -o Π²Π°Ρ_ΡΠΊΡΠΈΠΏ.js, Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ΅ΡΡ, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠΊΡΠΈΠΏΡ, ΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ flamegraph ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ:
ΠΠ½ΠΈΠ·Ρ ΡΠΈΠ»ΡΡΡΡ, ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ app, deps β ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
Π§Π΅ΠΌ ΡΠΈΡΠ΅ ΠΏΠΎΠ»ΠΎΡΠΊΠ° β ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΡΠ°ΡΠ΅Π½ΠΎ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (Π²ΠΊΠ»ΡΡΠ°Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ).
Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΈΠ²Π°Π΅ΠΌ Π½Π΅ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π£ ΠΌΠ΅Π½Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΈΡ Π½Π°ΡΠ»ΠΎΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ.
ΠΠ°Π»Π΅Π΅, Π²Π΅ΡΡ Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΡ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ.

ΠΠ°Π»ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎΠΉ Π°Π»Π³ΠΎΠ³ΡΠΈΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ: ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠΈΡΠΎΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Ρ ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊ Π΄ΡΡΠ³ΠΎΠΉ. ΠΠΎ Ρ Π²ΡΠ±ΡΠ°Π» Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄: ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ ΡΠΎΡΠΊΠΈ Π²Ρ
ΠΎΠ΄Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°ΠΏΡΠΎΡΠ° Π² http.createServer). Π ΠΊΠΎΠ½ΡΠ΅ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Ρ Π·Π°Π²Π΅ΡΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π·Π°ΠΏΡΠΎΡΠ°, ΠΎΡΠ²Π΅ΡΠ°Ρ ΠΎΡΠ²Π΅ΡΠΎΠΌ-ΠΏΡΡΡΡΡΠΊΠΎΠΉ, ΠΈ ΠΈΠ·ΡΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ Π΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ²Π΅Ρ-ΠΏΡΡΡΡΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π΄Π°Π»ΡΡΠ΅ ΠΏΠΎ ΡΡΠ΅ΠΊΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Ρ.Π΄.
ΠΡΠ°ΠΊ, ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΡΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ:
Requests/sec:
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Ρ ΡΠΈΠ»ΡΡΡΡ core, v8 ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΎΡΠ²Π΅ΡΠ°, Π»ΠΎΠ³Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΡΠ»Π°Π±ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΡ
Π²Π΅ΡΠ΅ΠΉ β Π΅Π΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅.
ΠΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
Requests/sec: 16111
ΠΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ β ΠΏΠΎΠ³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π΄Π°Π»ΡΡΠ΅:
Requests/sec: 13330
ΠΠ°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ! ΠΠΈΠ΄Π½ΠΎ ΡΡΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ getByUrl Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠΈΠΌΡΡ ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠΎ ΠΊΠΎΡΡΠ΅Π»ΠΈΡΡΠ΅Ρ Ρ ΠΏΡΠΎΡΠ΅Π΄Π°Π½ΠΈΠ΅ΠΌ rps.
Π‘ΠΌΠΎΡΡΠΈΠΌ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎ Π² Π½Π΅ΠΉ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ (Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ core, v8):
ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡβ¦ ΠΊΡΡΠΈΠΌ ΠΊΠΎΠ΄, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌ:
for (var i in this.data) {
if (this[i]._options.regexp_obj.test(url)) return this[i];
}
return null;
ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΠΌ Π²
let result = null;
for (let i=0; i<this.length && !result; i++) {
if (this[i]._options.regexp_obj.test(url)) result = this[i];
}
Π ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ
Requests/sec: 16015
ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΡ Β«ΡΠ΄ΡΠ»Π°ΡΡΒ» ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡΡ Π΄ΠΎΠ»Ρ ΠΎΡ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊ ΠΆΠ΅ Π²ΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΠ»ΠΎΡΡ:
ΠΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅, ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ
Requests/sec: 13316
Π ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎ array ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
Π²Π΅ΡΡΠΈΡΡ
node.
Requests/sec: 15067
Π ΡΠ°ΠΊ ΡΠ°Π· Π·Π° ΡΠ°Π·ΠΎΠΌ, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΠ²ΡΠΈΡ
ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ: Π΄Π»Ρ Ρ
Π΅ΡΠ΅ΠΉ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΊΠ»ΡΡΠ΅ΠΉ new Map() ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π° 40% Π±ΡΡΡΡΠ΅Π΅ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ {};
Math.round(el*100)/100 Π² 2 ΡΠ°Π·Π° Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅ΠΌ toFixed(2).
Π flamegraph-Π΅ Π΄Π»Ρ core ΠΈ v8 ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΊΠ°ΠΊ ΠΈ ΠΌΠ°Π»ΠΎΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΡΠ°ΠΊ ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ Π³ΠΎΠ²ΠΎΡΡΡΠΈΠ΅ StringPrototypeSplit ΠΈΠ»ΠΈ v8::internal::Runtime_StringToNumber, ΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π·Π½Π°ΡΠΈΠΌΠ°Ρ ΡΠ°ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΠΌΠ΅Π½Π° split Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² indexOf ΠΈ substring ΠΌΠΎΠΆΠ΅Ρ Π΄Π°Π²Π°ΡΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π²ΡΠΈΠ³ΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΈ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΡΠ΅ΠΌΠ° β jit ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, Π° Π²Π΅ΡΠ½Π΅Π΅ Π΄Π΅ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ Π΄ΠΎΠ»ΠΈ ΡΠ°ΠΊΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΠΈ Ρ Π½ΠΈΠΌΠΈ.
Π’ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π΄ΡΠΌΡΠΈΠ²ΠΎΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Π° node βtrace_file_names βtrace_opt_verbose βtrace-deopt βtrace_opt
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠΎΡΠΊΠΈ Π²ΠΈΠ΄Π°
deoptimizing (DEOPT soft): begin 0x2bcf38b2d079 <JSFunction getTimeβ¦ Insufficient type feedback for binary operation ΠΏΡΠΈΠ²Π΅Π»ΠΈ ΠΊ ΡΡΡΠΎΡΠΊΠ΅
return val >= 10? val: β0β+val;
ΠΠ°ΠΌΠ΅Π½Π° Π½Π°
return (val >= 10? Β»: β0β)+val;
ΠΈΡΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΈΡΡΠ°ΡΠΈΡ.
ΠΠ»Ρ ΡΡΠ°ΡΠΎΠ³ΠΎ v8 Π΄Π²ΠΈΠΆΠΊΠ° Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π°Ρ
Π±ΠΎΡΡΠ±Ρ Ρ Π΄Π΅ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ:
github.com/P0lip/v8-deoptimize-reasons β ΡΠΏΠΈΡΠΎΠΊ,
www.netguru.co/blog/tracing-patterns-hinder-performance β ΡΠ°Π·Π±ΠΎΡ ΡΠΈΠΏΠΎΠ²ΡΡ
ΠΏΡΠΈΡΠΈΠ½,
www.html5rocks.com/en/tutorials/speed/v8 β ΠΏΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ v8, Π΄ΡΠΌΠ°Ρ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΠΈ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° v8.
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΆΠ΅ Π½Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ v8.
Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ
ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Requests/sec: 9971, Ρ.Π΅. ΡΡΠΊΠΎΡΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² 2 ΡΠ°Π·Π° Π·Π° ΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° Π½Π° ΡΠ²Π΅ΠΆΡΡ Π²Π΅ΡΡΠΈΡ node. js, ΠΈ Π΅ΡΠ΅ Π² 4 ΡΠ°Π·Π° Π·Π° ΡΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎΡ ΠΎΠΏΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΊΠΎΠΌΡ-Π½ΠΈΠ±ΡΠ΄Ρ Π΅ΡΠ΅.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ ΡΡΠΈΠ»Π΅ΠΉ ΡΠ°ΠΉΡΠ°
Π§Π°ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΡΠΎΠ² β ΡΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Ρ Π²ΡΡΡΠ΅ΡΠ°Π» ΡΠΈΡΡΠ°ΡΠΈΡ, ΡΡΠΎ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ. ΠΠ½ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΠΏΡΡΡΡΡ Π½Π°Π³ΡΡΠΆΠ°Π»ΠΈ ΡΠ°ΠΉΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΊΡΠΈΠΏΡΠ°Ρ (.js) ΠΈ ΡΡΠΈΠ»ΡΡ (.css).
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ js ΡΠΊΡΠΈΠΏΡΠΎΠ²
Π‘ΡΠ°Π·Ρ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ΅Π΄ΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ°ΠΉΡΠ°. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π»ΠΈΡΠ°ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΡΠΈΠΏΠ° Π²Π΅Π±-Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ°ΡΠ°.
Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π°Π½Π°Π»ΠΈΠ· ΡΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΡΠΊΡΠΈΠΏΡ Π½Π° ΡΠ°ΠΉΡΠ΅. ΠΠΎ Π²ΡΠΎΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π»ΠΈ ΡΠΊΡΠΈΠΏΡΡ Π½Π° Π²ΡΠ΅Ρ
ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
ΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ/Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
. ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅, ΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡ
Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π½Π° Π²ΡΠ΅Ρ
Π΄ΡΡΠ³ΠΈΡ
ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
ΡΠ°ΠΉΡΠ°. Π Π»ΡΠ±ΠΎΠΉ CMS ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΡΠ°Π·Π΄Π΅Π»Π° head, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡΠ°ΠΊ, Π²Ρ ΡΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡ, ΡΡΠΎ ΡΠΊΡΠΈΠΏΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΡΠ΅, Π° Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΎΠ½ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π½ΡΠΆΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ . ΠΠ°Π»Π΅Π΅ ΡΠΌΠΎΡΡΠΈΠΌ Π²Π½ΡΡΡΠΈ ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π‘ΠΆΠ°Ρ Π»ΠΈ ΡΠ°ΠΌ ΠΊΠΎΠ΄? ΠΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ. ΠΠΎΠΆΠ½ΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΡΡΠ½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, https://jscompress.com/), Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠΈΠΌΠ°ΡΡ ΠΊΠΎΠ΄ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ js ΡΠ°ΠΉΠ»ΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Modx ΡΡΠΎ MinifyX).
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ°ΠΏ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ β ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ js ΡΠ°ΠΉΠ»ΠΎΠ². Π§Π΅ΠΌ Π²ΡΡΠ΅ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ ΡΠ°ΠΉΡΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΡΠ΅ΠΌ ΡΠΈΠ»ΡΠ½Π΅Π΅ ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΠ°ΠΉΡΠ°. ΠΠ΅ Π²ΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΠ°ΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ head, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π² ΡΠ°ΠΌΡΠΉ ΠΊΠΎΠ½Π΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠΈΠΌ ΡΠ΅Π³ΠΎΠΌ body.
ΠΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΡΠΌ β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΏΡΠΎΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ°ΠΉΡΠ°. ΠΠΏΡΡΡ ΠΆΠ΅, Π½Π΅ Π²ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠ°ΠΆΠ΄ΡΠΉ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
<script async src="/ΠΏΡΡΡ-ΠΊ-ΡΠ°ΠΉΠ»Ρ.js"></script>
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠ΅ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΠΏΡΠΎΠΉΠ΄ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ². Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ. Π‘Π½Π°ΡΠ°Π»Π° ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΡΠΊΡΠΈΠΏΡΡ ΠΏΠΎ ΡΠΈΠΏΠ°ΠΌ: Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠΌ Π±ΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ head ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΌΠΎΠ³ΡΡ Π»ΠΈ ΡΠΊΡΠΈΠΏΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°ΡΡΡΡ ΠΏΠ°ΡΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΡΡ Π΄Π΅ΡΡΡΠΊΠΎΠ².
ΠΠ°ΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ jquery ΠΏΠ»Π°Π³ΠΈΠ½, ΡΠΎ Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ΄ΡΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ jquery. ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ, Π½ΠΎ Π»ΡΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Modx ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ MinifyX).
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ css ΡΡΠΈΠ»Π΅ΠΉ
Π’Π°ΠΊΠΆΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΡΡΠΈΠ»Π΅ΠΉ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΈΠΏΠ° Bootstrap, ΡΠΎ Π²ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠΈΠ»ΠΈ, Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠΎ, ΡΠ΅ΠΌ Π²Ρ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ.
ΠΡΠΈΠ½ΡΠΈΠΏΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ css ΡΠ°ΠΉΠ»ΠΎΠ² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ js:
- ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ Π½ΡΠΆΠ½Ρ ΡΡΠΈΠ»ΠΈ Π½Π° Π½ΡΠΆΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
- Π‘ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠΎΠ΄
- ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ»
ΠΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ (ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ 10-100 ΡΠ°ΠΌΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²) ΠΈ Π²ΡΡΡΠΎΠΈΡΡ ΠΈΡ (inline) Π² ΠΊΠΎΠ΄ ΡΡΡΠ°Π½ΠΈΡΡ. Google ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°/ΡΡΡΡΠΊΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ css ΡΡΠΈΠ»Π΅ΠΉ ΡΠ°ΠΊΠΆΠ΅ Π»ΡΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².
ΠΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΡΡΠ°Π½ΠΈΡ. Π’ΠΎ Π΅ΡΡΡ Π²Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΏΡΠΎΠ²Π΅Π΄ΡΡΠ΅ ΡΡΡ ΡΠ°Π±ΠΎΡΡ, Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΡΡΡΠΊΠΎΠ². ΠΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²ΡΠ΅Ρ js ΠΈ css ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΏΠΎΡΠ»Π΅ ΡΠΆΠ°ΡΠΈΡ.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ CMS (WordPress, ΠΠΈΡΡΠΈΠΊΡ) ΠΈΠ΄ΡΡ Ρ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°Π½Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΎΠ½ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Ρ
ΠΎΡΡΡ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ Π²Π°Ρ ΡΠ°ΠΉΡ. ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ js ΠΈ css ΡΠ°ΠΉΠ»Ρ β ΡΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ°ΠΏ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΡΠ°.
ΠΠ²ΡΠΎΡ: ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΠ΅ΡΠ³ΡΠ½ΠΎΠ²
ΠΠ°ΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ: 29.12.2019 Π³.
ΠΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ CSS- ΠΈ JS-ΡΠ°ΠΉΠ»Ρ Π² WordPress?
π ΠΠ°ΡΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΉΡΡ Π½Π° WordPress Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Π·Π° 11 ΡΡΠΎΠΊΠΎΠ². ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ βΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ CSS- ΠΈ JS-ΡΠ°ΠΉΠ»Ρ. ΠΠ΅ΡΠ²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π°, Π° JS β ΡΡΠΎ JavaScript-ΡΠΊΡΠΈΠΏΡΡ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠ΅ Π·Π° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°.
ΠΠ»Ρ ΡΠ΅Π³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ CSS- ΠΈ JS-ΡΠ°ΠΉΠ»Ρ?
Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ (ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ) ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΉΡΠ° Π²Π΅Π±-ΠΌΠ°ΡΡΠ΅ΡΠ° ΡΡΠ°ΡΠ°ΡΡΡΡ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠ±Π΅ΠΈΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ ΡΠ°ΠΉΡΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π±ΡΠ»Π° ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΡΠΈΠΏΡΠΎΠ² Π·Π° ΡΡΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π² Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², Π»ΠΈΡΠ½ΠΈΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ², ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠ² ΡΡΡΠΎΠΊ.
Π Π°ΡΡΠ΅Π½Π°Π»Π΅ WordPress ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ
ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ
ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠΈΡ
ΡΡΡ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ. ΠΠ΄Π½ΠΈΠΌ ΠΈΡ
ΡΠ°ΠΊΠΈΡ
Π΅ΡΡΡ AssetsMinify.
ΠΠ»Π°Π³ΠΈΠ½ AssetsMinify
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π² Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»ΠΈ WordPress ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΠ»Π°Π³ΠΈΠ½Π°, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ -> AssetsMinify.
Π’ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π³Π°Π»ΠΎΡΠΊΠΎΠΉ ΠΏΡΠ½ΠΊΡ Use Compass. ΠΠ°Π»ΡΡΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΈΠ»Π΅ΠΉ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΏΡΠ½ΠΊΡ Compress styles, Π° Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² β Compress scripts. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ ΠΈΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ½ΠΊΡΠ° Async attribute on footerβs script tag, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ΅Π³ΠΎ Π·Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΠ°ΡΠ΅ΠΌΡ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ Π³ΡΡΠ·ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠ΄ ΡΡΡΠ°Π½ΠΈΡΡ, Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ css- ΠΈ js-ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΠΎΡΠ»Π΅ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ
Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Save. Π ΠΈΡΠΎΠ³Π΅, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ ΠΠ°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°, ΡΠΊΡΠΈΠΏΡΡ ΠΈ ΡΡΠΈΠ»ΠΈ Π±ΡΠ΄ΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡ Π² ΡΠΆΠ΅ ΡΠΆΠ°ΡΠΎΠΌ Π²ΠΈΠ΄Π΅, ΡΡΠΎ Π² ΠΈΡΠΎΠ³Π΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΉΡΠ° Π² ΡΠ΅Π»ΠΎΠΌ.
ΠΠ°ΠΆΠΌΠΈΡΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π° ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΡΠ°ΡΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ.
ΠΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡΠΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡΠΡΠ»ΠΈ ΠΠ°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΡΠ°ΡΡΡ β ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ Ρ Π΄ΡΡΠ·ΡΡΠΌΠΈ
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ β React
React ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΌΠ½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΡ DOM-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ React ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π±ΡΡΡΡΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π±Π΅Π· ΠΎΡΠΎΠ±ΡΡ ΡΡΠΈΠ»ΠΈΠΉ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΡΠΊΠΎΡΠΈΡΡ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΠΈ
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΡΡΡΠ²Π°Π΅ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π² React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ ΡΠ΅ΡΡΡ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΠΈ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² React Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ React Π±ΠΎΠ»ΡΡΠ΅ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈ Π΄Π΅ΠΏΠ»ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² React Developer Tools for Chrome. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠ°ΠΉΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° React Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΈΠΊΠΎΠ½ΠΊΠ° Π±ΡΠ΄Π΅Ρ Ρ ΡΡΡΠ½ΡΠΌ ΡΠΎΠ½ΠΎΠΌ:
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠ°ΠΉΡ Ρ React Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Ρ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠΎΠ½:
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΈ Π΄Π΅ΠΏΠ»ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠΈΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΠ±ΠΎΡΠΊΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°.
Create React App
ΠΡΠ»ΠΈ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ΄Π΅Π»Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Create React App, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ build/
Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½. ΠΠ»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ npm start
.
ΠΠ΄Π½ΠΎΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ
ΠΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΠΈ React ΠΈ React DOM Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²:
<script src="https://unpkg.
com/react@17/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π° ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ Π½Π° .production.min.js
.
Brunch
ΠΠ»Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΠΈ Ρ Brunch, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ terser-brunch
.
# Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ npm
npm install --save-dev terser-brunch
# Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Yarn
yarn add --dev terser-brunch
ΠΠ°ΡΠ΅ΠΌ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½ ΡΠ±ΠΎΡΠΊΠΈ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π°Π³ -p
ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ build
:
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π°Π³ -p
ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΡΠΊΡΠΎΠ΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ React ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ.
Browserify
ΠΠ»Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΠΈ Ρ Browserify, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²:
# Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ npm
npm install --save-dev envify terser uglifyify
# Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Yarn
yarn add --dev envify terser uglifyify
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΠΈ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ (ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅):
- ΠΠ»Π°Π³ΠΈΠ½
envify
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ.Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ Π΅Π³ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ (
-g
). - ΠΠ»Π°Π³ΠΈΠ½
uglifyify
ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΈΠΌΠΏΠΎΡΡΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ Π΅Π³ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ (-g
). - ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ ΡΠ±ΠΎΡΠΊΠ° ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊ
terser
Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ (ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅, Π·Π°ΡΠ΅ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ).
Π ΠΏΡΠΈΠΌΠ΅ΡΡ:
browserify ./index.js \
-g [ envify --NODE_ENV production ] \
-g uglifyify \
| terser --compress --mangle > ./bundle.js
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°ΠΌ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΡΠΊΡΠΎΠ΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ React ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ.
Rollup
ΠΠ»Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΠΈ Ρ Rollup, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²:
npm install --save-dev rollup-plugin-commonjs rollup-plugin-replace rollup-plugin-terser
yarn add --dev rollup-plugin-commonjs rollup-plugin-replace rollup-plugin-terser
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΠΈ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ (ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅):
- ΠΠ»Π°Π³ΠΈΠ½
replace
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ. - ΠΠ»Π°Π³ΠΈΠ½
commonjs
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ CommonJS Π² Rollup. - ΠΠ»Π°Π³ΠΈΠ½
terser
ΡΠΆΠΈΠΌΠ°Π΅Ρ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΈΠ½Π°Π»ΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΡ.
plugins: [
require('rollup-plugin-replace')({
'process.env.NODE_ENV': JSON.stringify('production')
}),
require('rollup-plugin-commonjs')(),
require('rollup-plugin-terser')(),
]
ΠΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π΄Π΅ΡΡ.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°ΠΌ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ terser
ΠΈΠ»ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ replace
ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 'production'
Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΡΠΊΡΠΎΠ΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ React ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ.
webpack
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Create React App, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π²ΡΡΠ΅.
ΠΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ webpack.
Webpack 4.0 ΠΈ Π²ΡΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ΅ΠΆΠΈΠΌΠ΅.
const TerserPlugin = require('terser-webpack-plugin');
module.exports = {
mode: 'production',
optimization: {
minimizer: [new TerserPlugin({ })],
},
};
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ webpack.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°ΠΌ Π½Π΅ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TerserPlugin
Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΠ³Π΄Π° ΡΠΊΡΠΎΡΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ React ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ.
ΠΠ½Π°Π»ΠΈΠ· ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Chrome Β«PerformanceΒ»
Π ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠ½ΡΠΈΡΡΡΡΡΡ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΠΈ ΡΠ°Π·ΠΌΠΎΠ½ΡΠΈΡΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² Chrome:
- ΠΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΠ΅ Π²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Chrome, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ React DevTools. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΡΠΊΠ°Π·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ!
- Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
- ΠΡΠΊΡΠΎΠΉΡΠ΅ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Chrome Π²ΠΊΠ»Π°Π΄ΠΊΡ Performance ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Record.
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ Π±ΠΎΠ»Π΅Π΅ 20 ΡΠ΅ΠΊΡΠ½Π΄, ΠΈΠ½Π°ΡΠ΅ Chrome ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠ½ΡΡΡ.
- ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΡ.
- Π‘ΠΎΠ±ΡΡΠΈΡ React Π±ΡΠ΄ΡΡ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ΄ ΠΌΠ΅ΡΠΊΠΎΠΉ User Timing.
ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΡ ΡΡΠ°ΡΡΡ ΠΎΡ ΠΠ΅Π½Π° Π¨Π²Π°ΡΡΠ° (Ben Schwarz).
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π±ΡΡΡΡΠ΅Π΅. ΠΡΡ ΠΆΠ΅ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΠΈ ΡΠ°ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Chrome, Edge ΠΈ IE Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, Π½ΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡ User Timing API, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠΆΠΈΠ΄Π°ΠΉΡΠ΅, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² Π΄ΠΎΠ±Π°Π²ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ.
ΠΠ°ΠΊΠ΅ΡΡ react-dom
Π²Π΅ΡΡΠΈΠΈ 16.5+ ΠΈ react-native
Π²Π΅ΡΡΠΈΠΈ 0.57+ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React Profiler.
ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΡΠ°ΠΉΠ»Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΠΎΡΡΠ΅ Π±Π»ΠΎΠ³Π° Β«ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² React ProfilerΒ».
ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ-ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π½Π° YouTube.
ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΡ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° React, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΈΡ Π·Π΄Π΅ΡΡ:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄Π»Ρ
react-dom
ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΊΠ°ΠΊreact-dom/profiling
. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ, ΡΠΈΡΠ°ΠΉΡΠ΅ Π½Π° fb.me/react-profiling
ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π»ΠΈΠ½Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ²
ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΡ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
(ΡΠΎΡΠ½ΠΈ ΠΈΠ»ΠΈ ΡΡΡΡΡΠΈ ΡΡΡΠΎΠΊ), ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ Β«ΠΎΠΊΠΎΠ½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏΒ». ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅Π½Π΄Π΅ΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ
DOM-ΡΠ·Π»ΠΎΠ².
react-window ΠΈ react-virtualized β ΡΡΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ², ΡΠ΅ΡΠΎΠΊ ΠΈ ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ ΠΎΠΊΠΎΠ½Π½ΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² Twitter.
ΠΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ
React ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ React-ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΈΠ· Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ React ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ DOM-ΡΠ·Π»ΠΎΠ² ΠΈ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅ΠΊΡΡΠΈΠΌ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ JavaScript-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠ½ΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ DOMΒ», Π½ΠΎ Π² React Native ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅.
ΠΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΎΠΏΡΡ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, React ΡΠ΅ΡΠ°Π΅Ρ Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ DOM, ΡΡΠ°Π²Π½ΠΈΠ²Π°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΡΠ°Π½Π΅Π΅ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Π½ΡΠΌ. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ°Π²Π½Ρ, React ΠΎΠ±Π½ΠΎΠ²ΠΈΡ DOM.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ React ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΡΠ΅ DOM-ΡΠ·Π»Ρ, ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π²ΡΡ ΠΆΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ Π΅ΡΠ»ΠΈ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡ ΡΡΠΊΠΎΡΠΈΡΡ, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΠΌΠ΅ΡΠΎΠ΄ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° shouldComponentUpdate
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ΅ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true
, ΡΠΊΠ°Π·ΡΠ²Π°Ρ React Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅:
shouldComponentUpdate(nextProps, nextState) {
return true;
}
ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ
Π²Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ false
ΠΈΠ· shouldComponentUpdate
, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°, Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ² render()
ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΠΈ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΈΡΠ°ΡΡ shouldComponentUpdate()
Π²ΡΡΡΠ½ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΡ React.PureComponent
. ΠΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
shouldComponentUpdate()
Ρ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΠ½ΡΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΡ
ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΠΏΡΠΎΠΏΡΠΎΠ² ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
shouldComponentUpdate Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ
ΠΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ
SCU
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΠ» shouldComponentUpdate
, Π° vDOMEq
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ Π»ΠΈ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Π½ΡΠ΅ React ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ²Π΅Ρ ΠΊΡΡΠ³Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ»ΠΈ Π½Π΅Ρ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ shouldComponentUpdate
Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΠ» false
Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π° Ρ ΠΊΠΎΡΠ½Π΅ΠΌ C2, React Π½Π΅ ΠΏΡΡΠ°Π»ΡΡ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ C2, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ shouldComponentUpdate
Π½Π° C4 ΠΈ C5.
ΠΠ»Ρ C1 ΠΈ C3 shouldComponentUpdate
Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΠ» true
, ΠΏΠΎΡΡΠΎΠΌΡ React ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΠΏΡΡΡΠΈΡΡΡΡ ΠΊ Π»ΠΈΡΡΡΡΠΌ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈΡ
. ΠΠ»Ρ C6 shouldComponentUpdate
Π²Π΅ΡΠ½ΡΠ» true
, ΠΈ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π΅ Π±ΡΠ»ΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ, React Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ DOM.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ β C8. React Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΈΠΌ React-ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π±ΡΠ»ΠΈ ΡΠ°Π²Π½Ρ ΡΠ°Π½Π΅Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ, Π΅ΠΌΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ DOM.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ React Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» Π΄Π΅Π»Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ C6. ΠΠ»Ρ C8 ΡΡΠΎΠ³ΠΎ ΡΠ΄Π°Π»ΠΎΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Π½ΡΡ
React-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π° Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² C2 ΠΈ C7 Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π°Ρ Π²ΡΡΡΡΠΈΠ» shouldComponentUpdate
ΠΈ render
Π½Π΅ Π±ΡΠ» Π²ΡΠ·Π²Π°Π½.
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΡΠ»ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ props.color
ΠΈΠ»ΠΈ state.count
ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ, Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π² shouldComponentUpdate
ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
class CounterButton extends React.Component {
constructor(props) {
super(props);
this.state = {count: 1};
}
shouldComponentUpdate(nextProps, nextState) {
if (this.props.color !== nextProps.color) {
return true;
}
if (this.
state.count !== nextState.count) {
return true;
}
return false;
}
render() {
return (
<button
color={this.props.color}
onClick={() => this.setState(state => ({count: state.count + 1}))}>
Π‘ΡΡΡΡΠΈΠΊ: {this.state.count}
</button>
);
}
}
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ shouldComponentUpdate
β ΡΡΠΎ ΠΏΡΠΎΡΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² props.color
ΠΈΠ»ΠΈ state.count
. ΠΡΠ»ΠΈ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ, ΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ Π²Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΠ°Π» Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ Β«ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡΒ» ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ props
ΠΈ state
, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΡΠΎΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½, ΠΏΠΎΡΡΠΎΠΌΡ React ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌ β ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ΡΡ ΠΎΡ React.PureComponent
. ΠΠΎΡΡΠΎΠΌΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ β ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°:
class CounterButton extends React.
PureComponent {
constructor(props) {
super(props);
this.state = {count: 1};
}
render() {
return (
<button
color={this.props.color}
onClick={() => this.setState(state => ({count: state.count + 1}))}>
Π‘ΡΡΡΡΠΈΠΊ: {this.state.count}
</button>
);
}
}
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ React.PureComponent
Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ shouldComponentUpdate
. ΠΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΏΡΡ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ ΠΏΡΠΈ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΠ½ΠΎΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ListOfWords
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π» ΡΠΏΠΈΡΠΎΠΊ ΡΠ»ΠΎΠ², ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π½ΡΡ
ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ, Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ WordAdder
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»ΠΎΠ²ΠΎ Π² ΡΠΏΠΈΡΠΎΠΊ. ΠΡΠΎΡ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ:
class ListOfWords extends React.
PureComponent {
render() {
return <div>{this.props.words.join(',')}</div>;
}
}
class WordAdder extends React.Component {
constructor(props) {
super(props);
this.state = {
words: ['ΡΠ»ΠΎΠ²ΡΠΎ']
};
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
const words = this.state.words;
words.push('ΡΠ»ΠΎΠ²ΡΠΎ');
this.setState({words: words});
}
render() {
return (
<div>
<button onClick={this.handleClick} />
<ListOfWords words={this.state.words} />
</div>
);
}
}
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ PureComponent
ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠΌΠΈ ΠΈ Π½ΠΎΠ²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ this.props.words
. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΌΡΡΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² words
Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ handleClick
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° WordAdder
, ΡΡΠ°ΡΡΠ΅ ΠΈ Π½ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ this.props.words
ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°Π²Π½Ρ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ»ΠΎΠ²Π° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ.
ListOfWords
Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ»ΠΎΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Ρ.
Π‘ΠΈΠ»Π° ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΌΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ handleClick
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ concat
ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
handleClick() {
this.setState(state => ({
words: state.words.concat(['ΡΠ»ΠΎΠ²ΡΠΎ'])
}));
}
ES6 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΠΎΡΠ΅. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Create React App, ΡΠΎ ΡΡΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ°ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
handleClick() {
this.setState(state => ({
words: [...state.words, 'ΡΠ»ΠΎΠ²ΡΠΎ'],
}));
};
Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡΡΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ colormap
ΠΈ Ρ
ΠΎΡΠΈΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ colormap.
Π½Π° right
'blue'
. ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ:
function updateColorMap(colormap) {
colormap.right = 'blue';
}
Π§ΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ Π±Π΅Π· ΠΌΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Object.assign:
function updateColorMap(colormap) {
return Object.assign({}, colormap, {right: 'blue'});
}
Π€ΡΠ½ΠΊΡΠΈΡ updateColorMap
ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ. ΠΠ΅ΡΠΎΠ΄ Object.assign
Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ES6 ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠ»Π°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π±Π΅Π· ΠΌΡΡΠ°ΡΠΈΠΉ:
function updateColorMap(colormap) {
return {...colormap, right: 'blue'};
}
ΠΡΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² JavaScript Π² ES2018.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Create React App, ΡΠΎ Object.assign
ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²Π°ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ ΠΈΡ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΠ°ΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Immer ΠΈΠ»ΠΈ immutability-helper. ΠΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΈΡΠ°ΡΡ Ρ
ΠΎΡΠΎΡΠΎ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄, Π½Π΅ ΡΠ΅ΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ canvas β ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π²Π΅Π± API
ΠΠ»Π΅ΠΌΠ΅Π½Ρ <canvas>
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° 2D-Π³ΡΠ°ΡΠΈΠΊΠΈ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π²Π΅Π±-ΡΠ°ΠΉΡΡ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Canvas API Π½Π° ΠΏΡΠ΅Π΄Π΅Π»Π΅ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ½ΠΈΠΆΠ°ΡΡΡΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° canvas Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Ρ
ΠΎΡΠΎΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΡΠ±ΠΎΡΠ½ΠΈΠΊ ΡΠΎΠ²Π΅ΡΠΎΠ² ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ canvas.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π° offscreen canvas
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΠ΅ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Π΄ΡΠ΅ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡ
Π²ΡΠ³ΡΡΠ·ΠΊΠΈ Π½Π° offscreen canvas. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΊΠ°Π΄ΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ²ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ canvas ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΡΠ°Π³ΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π΅Π³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ.
myCanvas.offscreenCanvas = document.createElement('canvas');
myCanvas.offscreenCanvas.width = myCanvas.width;
myCanvas.offscreenCanvas.height = myCanvas.height;
myCanvas.getContext('2d').drawImage(myCanvas.offScreenCanvas, 0, 0);
ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π½ΠΈΡ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°
Π‘ΡΠ±ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π° canvas Π±Π΅Π· ΡΠ΅Π»ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ctx.drawImage(myImage, 0.3, 0.5);
ΠΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠ° ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΊΡΡΠ³Π»ΠΈΡΠ΅ Π²ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² Π²ΡΠ·ΠΎΠ²Π°Ρ
drawImage()
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Math.floor()
.
ΠΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠΉΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²
drawImage
ΠΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΊΠ΅ΡΠΈΡΡΠΉΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ
ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π½Π° offscreen canvas, Π° Π½Π΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠΉΡΠ΅ ΠΈΡ
Π² drawImage()
.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΡΠ² canvas Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΠ΅Π½
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΡΠ°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ°ΡΠΈΡΠ½ΡΠΌΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π² ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π°ΡΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
<canvas>
.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΈΠ³ΡΠ° Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π½Π°Π²Π΅ΡΡ
Ρ, Π³Π΅ΠΉΠΌΠΏΠ»Π΅Π΅ΠΌ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΎΠ½ΠΎΠΌ Π²Π½ΠΈΠ·Ρ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΡ ΡΠ²ΠΎΡ ΠΈΠ³ΡΡ Π½Π° ΡΡΠΈ ΡΠ»ΠΎΡ <canvas>
. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΠ»ΠΎΠΉ Ρ ΠΈΠ³ΡΠΎΠ²ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π½ΠΎΠ²ΡΠΌ ΠΊΠ°Π΄ΡΠΎΠΌ, Π° ΡΠΎΠ½ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ.
<div>
<canvas></canvas>
<canvas></canvas>
<canvas></canvas>
</div>
<style>
#stage {
width: 480px;
height: 320px;
position: relative;
border: 2px solid black;
}
canvas { position: absolute; }
#ui-layer { z-index: 3; }
#game-layer { z-index: 2; }
#background-layer { z-index: 1; }
</style>
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΎΡΡΠΎΠΉ CSS Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΎΠ½ΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° ΠΏΡΠΎΡΡΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ <div>
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ CSS background
, ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄ canvas. ΠΡΠΎ ΡΠ²Π΅Π΄ΡΡ Π½Π° Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΡΠΎΠ½Π° Π½Π° canvas Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΈΠΊΠ΅.
ΠΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΎΠ»ΡΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ CSS-ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ
CSS-ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π±ΡΡΡΡΠ΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ. Π ΠΈΠ΄Π΅Π°Π»Π΅, Π½Π΅ ΡΡΠΎΠΈΡ Π½Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ canvas, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΉ canvas ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ Π½Π΅ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ.
var scaleX = window.innerWidth / canvas.width;
var scaleY = window.innerHeight / canvas.height;
var scaleToFit = Math.min(scaleX, scaleY);
var scaleToCover = Math.max(scaleX, scaleY);
stage.style.transformOrigin = '0 0';
stage.style.transform = 'scale(' + scaleToFit + ')';
ΠΡΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ
ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ canvas ΠΈ Π½Π΅ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΠΌ ΡΠΎΠ½Π΅, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° alpha
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false
ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ HTMLCanvasElement.getContext()
. ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.
var ctx = canvas.getContext('2d', { alpha: false });
ΠΡΡΠ³ΠΈΠ΅ ΡΠΎΠ²Π΅ΡΡ
- ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ canvas. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΡΡΠΉΡΠ΅ ΠΎΠ΄Π½Ρ Π»ΠΎΠΌΠ°Π½Π½ΡΡ Π»ΠΈΠ½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π»ΠΈΠ½ΠΈΠΉ.
- ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ canvas.
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ°ΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°, Π° Π½Π΅ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°ΠΉΡΠ΅.
- ΠΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
shadowBlur
(en-US). - ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
- ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΡΠΈΡΡΠΊΠΈ canvas ((
clearRect()
, ΠΈΠ»ΠΈfillRect()
, ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° canvas). - Π‘ Π°Π½ΠΈΠΌΠ°ΡΠΈΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
window.requestAnimationFrame()
Π²ΠΌΠ΅ΡΡΠΎwindow.setInterval()
(en-US). - ΠΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ Ρ ΡΡΠΆΡΠ»ΡΠΌΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΏΡΡΠΊΠ° JavaScript | ΠΡΠ½ΠΎΠ²Ρ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
Eng ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠΎ ΡΠ²ΡΠ·ΡΠΌ Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΡΡ, Π² Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ JavaScript, ΠΌΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠ»Π°ΡΠΈΠΌ Π·Π° ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΡΡΠ»Π°Π΅ΠΌ Π²Π½ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π»Π΅Π³ΠΊΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΎΠ±ΡΡΡΠ½ΠΈΡΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°Ρ ΡΠ°ΠΉΡ Π·Π°Π³ΡΡΠΆΠ°Π»ΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ Π±ΡΡΡΡΠΎ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ . ΠΠ΅Π½ΡΡΠ΅ JavaScript β Π·Π½Π°ΡΠΈΡ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎ ΡΠ΅ΡΠΈ, ΠΌΠ΅Π½ΡΡΠ΅ Π·Π°ΡΡΠ°Ρ Π½Π° ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π·Π±ΠΎΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΡΠΎΠ³ΠΎ JavaScript.
Π‘Π΅ΡΡ
ΠΠΎΠ³Π΄Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄ΡΠΌΠ°ΡΡ ΠΎ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ JavaScript, ΠΎΠ½ΠΈ Π΄ΡΠΌΠ°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π² ΡΡΠΎΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ . ΠΡΠΏΡΠ°Π²ΠΊΠ° Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π±Π°ΠΉΡΠΎΠ² JavaScript ΠΏΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π΄Π°ΠΆΠ΅ Π² ΡΡΡΠ°Π½Π°Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ ΡΠ΅ΡΡ ΡΠΈΠΏ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ 3G, 4G ΠΈΠ»ΠΈ Wi-Fi. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡ Π½Π° ΠΊΠΎΡΠ΅ΠΉΠ½Ρ Wi-Fi, Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π° ΠΊ ΡΠΎΡΠΎΠ²ΠΎΠΉ ΡΠΎΡΠΊΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ 2G.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ JavaScript ΡΠ΅ΡΠ΅Π·:
- Π’ΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΊΠΎΠ΄Π°, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ .
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²Π·Π»ΠΎΠΌΠ° ΡΠ°Π·Π±Π΅ΡΠΈΡΠ΅ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ JavaScript Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ, Π° ΡΡΠΎ Π½Π΅Ρ. Π‘Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° webpack ΡΠ°ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.
- ΠΠ΅Π½ΠΈΠ²Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ΠΊΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
- ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ
- Π‘ΠΆΠ°ΡΠΈΠ΅
- ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ gzip Π΄Π»Ρ ΡΠΆΠ°ΡΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ².
- Π Π°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΡΠΎΡΠ»ΠΈ ~ q11. ΠΡΠΎΡΠ»ΠΈ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ gzip ΠΏΠΎ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠΆΠ°ΡΠΈΡ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ CertSimple ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ 17% ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΆΠ°ΡΡΡ Π±Π°ΠΉΡΠΎΠ² JS ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π² LinkedIn 4% Π½Π° Π²ΡΠ΅ΠΌΡ ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° .
- ΠΠΎΠ΄ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HTTP ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ±Ρ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΎΡΠ²Π΅ΡΡ. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² (max-age) ΠΈ ΡΠΎΠΊΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ (ETag), ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ Π±Π°ΠΉΡΠΎΠ². ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- Service Worker ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠΉ ΠΈ Π΄Π°ΡΡ Π²Π°ΠΌ ΠΆΠ°Π΄Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΊΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ V8 ΠΊΠ΅Ρ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎΠ΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π²ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Webpack ΡΠΌ. ΠΠΌΡ ΡΠ°ΠΉΠ»Π° Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· / ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ Π±ΠΎΠ»ΡΡΠΈΡ Π·Π°ΡΡΠ°Ρ JavaScript β ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ JS engine Π΄Π»Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ / ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄. Π Chrome DevTools, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΆΠ΅Π»ΡΠΎΠ³ΠΎ ΠΡΠ΅ΠΌΡ Β«Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΡΒ» Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Β«ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΒ».
ΠΠΊΠ»Π°Π΄ΠΊΠΈ Bottom-Up ΠΈ Call Tree ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° / ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ:
Π₯ΡΠΎΠΌ ΠΠ°Π½Π΅Π»Ρ DevTools Β«ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΒ»> Β«Π‘Π½ΠΈΠ·Ρ Π²Π²Π΅ΡΡ Β». ΠΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² V8 ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ°ΠΏΡ, ΠΊΠ°ΠΊ Parse ΠΈ Compile. ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ. Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² chrome: // flags / # enable-devtools-tests -> ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Chrome -> ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² DevTools -> ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ -> ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ -> Π½Π°ΠΆΠΌΠΈΡΠ΅ Shift 6 ΡΠ°Π· -> ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ»Π°ΠΆΠΎΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Timeline: V8 Runtime Call Stats on Timeline
ΠΈ Π·Π°ΠΊΡΠΎΠΉΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΠΎΠΉΡΠ΅ DevTools.ΠΠΎ ΠΊΠ°ΠΊΠΎΠ΅ ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅?
ΠΠ°ΡΡΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· / ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡΡ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎ, ΠΊΠ°ΠΊ ΡΠΊΠΎΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π²Π°ΡΠΈΠΌ ΡΠ°ΠΉΡΠΎΠΌ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ JavaScript Π²Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅, ΡΠ΅ΠΌ Π΄ΠΎΠ»ΡΡΠ΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΡΠΌΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²Π°Ρ ΡΠ°ΠΉΡ ΡΡΠ°Π½Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌ.
Π±Π°ΠΉΡΠΎΠ², JavaScript Π΄ΠΎΡΠΎΠΆΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ, ΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠ»ΠΈ Π²Π΅Π±-ΡΡΠΈΡΡ β Tom Dale
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ JavaScript, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°ΡΡΠ°Ρ. ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° (ΠΈΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ!), Π½ΠΎ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, JS Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
JavaScript ΠΈ Π±Π°ΠΉΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·Π½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΈΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ JS ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈΠ·-Π·Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π·Π°ΡΡΠ°ΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.ΠΠΎΠ³Π΄Π° ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ; ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²Π°ΠΆΠ΅Π½ β ΠΌΡ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΡΠ΅Π΄Π½ΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°Ρ Π·Π΄Π΅ΡΡ. Π£ ΠΎΠ±ΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π»Π΅ΡΠΎΠ½Ρ Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ, Π±Π΅Π· ΠΊΠ΅ΡΠ° L2 / L3 ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΠΆΠ΅ Π±ΡΡΡ ΠΏΠ°ΠΌΡΡΡΡ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ.
Π‘Π΅ΡΠ΅Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ² Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΠΏΡΠΎΠ²ΠΎΠ»ΠΎΠΊΠΎΠ½Π½ΡΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π»ΡΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π½Π° ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ JavaScript. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΠ½ΠΎ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ .. ΡΠΆΠ°ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π±ΡΡΡΡΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ. β ΠΡΠΈΡΡΠΎΡΠ΅Ρ ΠΠ°ΠΊΡΡΠ΅Ρ, LinkedIn
ΠΠΈΠΆΠ΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ~ 1 ΠΠ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ (ΠΏΡΠΎΡΡΠΎΠ³ΠΎ) JavaScript Π½Π° Π½ΠΈΠ·ΠΊΠΎΠ΅ ΠΈ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. Π Π°Π·Π½ΠΈΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° / ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 2β5 ΡΠ°Π·. ΠΊΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΌΡΠΌΠΈ Π±ΡΡΡΡΡΠΌΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°ΠΌΠΈ Π½Π° ΡΡΠ½ΠΊΠ΅ ΠΈ ΡΡΠ΅Π΄Π½ΠΈΠΌΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°ΠΌΠΈ .
ΠΡΠΎΡ Π³ΡΠ°ΡΠΈΠΊ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° JavaScript ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 1 ΠΠ (~ 250 ΠΠ Π² ΡΠΆΠ°ΡΠΎΠΌ Π²ΠΈΠ΄Π΅) ΡΠ΅ΡΠ΅Π· Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠ°Π·Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ~ 250 ΠΠ ΡΠΆΠ°ΡΠΎΠ³ΠΎ ΡΠΆΠ°ΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° JS ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ Π΄ΠΎ ~ 1 ΠΠ ΠΊΠΎΠ΄Π°.Π ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ CNN.com?
ΠΠ° iPhone 8 Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° / ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ JS CNN ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ ~ 4 ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π΄ΠΎ ~ 13 Ρ Π΄Π»Ρ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½Π° (Moto G4) . ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π±ΡΡΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΡΡΠΈΠΌ ΡΠ°ΠΉΡΠΎΠΌ.
ΠΡΡΠ΅ ΠΌΡ ΡΠΌ. Π²ΡΠ΅ΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΠ΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠ° Apple A11 Bionic Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Snapdragon 617 Π² Π±ΠΎΠ»Π΅Π΅ ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ Android.ΠΡΠΎ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π΅Ρ Π²Π°ΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Moto G4) Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Ρ Π²Π°Ρ Π² ΠΊΠ°ΡΠΌΠ°Π½Π΅. ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½Π°ΠΊΠΎ: ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΡΠ΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ Ρ Π²Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Google ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Π°ΡΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π·Π°Ρ ΠΎΠ΄ΡΡ Π½Π° Π²Π°Ρ ΡΠ°ΠΉΡ.ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ½ΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ CPU / GPU, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ.ΠΠ΅ΡΠΆΠ΅Π»ΠΈ ΠΌΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ JavaScript? ΠΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ π
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ HTTP-Π°ΡΡ ΠΈΠ²Π° (~ 500 ΡΡΡ. Π‘Π°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ°ΠΉΡΠΎΠ²) Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ JavaScript Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ 50% ΡΠ°ΠΉΡΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ Π·Π° 14 ΡΠ΅ΠΊΡΠ½Π΄. ΠΡΠΈ ΡΠ°ΠΉΡΡ ΡΡΠ°ΡΡΡ Π΄ΠΎ 4 ΡΠ΅ΠΊΡΠ½Π΄ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΠ°ΡΡΠΈΠ½Π³ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ JS.
Π€Π°ΠΊΡΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ JS ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΈ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΡΡΠ²ΡΡΠ²ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.ΠΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ Π·Π΄Π΅ΡΡ.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° JavaScript ΡΠΎ ΡΡΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ°Π·, ΡΠ°Π·Π±ΠΎΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π¦Π ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° ΠΏΠ°ΠΌΡΡΡ. ΠΡΠΎΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°ΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ.
ΠΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π½Ρ. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ JavaScript (Π·Π°ΠΏΡΡΠΊ ΠΊΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° / ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ) β ΠΎΠ΄Π½Π° ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. ΠΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΡΠΊΠΎΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π²Π°ΡΠΈΠΌ ΡΠ°ΠΉΡΠΎΠΌ.
ΠΡΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ 50 ΠΌΡ, Π²ΡΠ΅ΠΌΡ Π΄ΠΎ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π²ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JS β ΠΠ»Π΅ΠΊΡ Π Π°ΡΡΠ΅Π»
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, JavaScript ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π²ΡΠ³ΠΎΠ΄Ρ ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² , ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π±Π»ΠΎΠΊΠΈΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ. Π£Π·Π½Π°ΠΉΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠΎΡΠΈΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ
JavaScript ΠΌΠΎΠΆΠ΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
- ΠΠ°ΠΌΡΡΡ.Π‘ΡΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΡΠΎ Π·Π°Π²ΠΈΡΠ°ΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΈΠ·-Π·Π° GC (ΠΌΡΡΠΎΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ). ΠΠΎΠ³Π΄Π° Π±ΡΠ°ΡΠ·Π΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΠ°ΠΌΡΡΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ JS ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ°ΡΠ·Π΅Ρ, ΡΠ°ΡΡΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡΠΈΠΉ ΠΌΡΡΠΎΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠ΅, ΡΠ΅ΠΌ Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡΡ. ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠ°ΡΡΡΠ΅ ΠΏΠ°ΡΠ·Ρ gc, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅ Π·Π°Π²ΠΈΡΠ°Π»ΠΈ.
- ΠΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ JavaScript ΠΌΠΎΠΆΠ΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ, Π²ΡΠ·ΡΠ²Π°Ρ
ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
requestAnimationFrame ()
ΠΈΠ»ΠΈrequestIdleCallback ()
Π΄Π»Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ) ΠΌΠΎΠΆΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ.
Π¨Π°Π±Π»ΠΎΠ½Ρ Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ JavaScript
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° / ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎ ΡΠ΅ΡΠΈ Π΄Π»Ρ JavaScript ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ, Π΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΡΡΡΡΡΠ° ΠΈΠ»ΠΈ PRPL.
ΠΠ ΠΠ
PRPL (Push, Render, Pre-cache, Lazy-load) β ΡΡΠΎ ΡΠ°Π±Π»ΠΎΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π·Π° ΡΡΠ΅Ρ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡ.
ΠΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΠ°ΠΉΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ V8.ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, Π²ΡΠ΅ΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° (ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΎΡΠ°Π½ΠΆΠ΅Π²ΡΠΌ) β ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡ Π²ΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΠ°ΠΉΡΠΎΠ²:
Wego, ΡΠ°ΠΉΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΌΡ PRPL, ΡΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΈΡ ΠΌΠ°ΡΡΡΡΡΠΎΠ², ΡΡΠ°Π½ΠΎΠ²ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ. ΠΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΉΡΡ Π²ΡΡΠ΅ ΠΏΡΠΈΠ½ΡΡΡΠ΅ Π±ΡΠ΄ΠΆΠ΅ΡΡ Π½Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΈΡ JS ΡΠ°ΡΡ ΠΎΠ΄Ρ.
ΠΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½Π°Ρ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°ΠΉΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΠ΅Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ.ΠΠΎΠ»ΡΡΠΈΡΡ ΠΡΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ²Π°Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ JavaScript, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°; Π·Π°ΡΠ΅ΠΌ Β«ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅Β» Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΊΠΎΠ³Π΄Π°, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ JavaScript.
ΠΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ β ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ. ΠΡ 1) ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ HTML ΠΎΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ»ΠΊΠ½ΡΡΡ Π½Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, 2) ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΆΡΡΠΊΠΎΠΌ Π΄ΠΎΠ»ΠΈΠ½Π°, Π³Π΄Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΎΠΏΡΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° JavaScript Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ.
ΠΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΡΡΠΈΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ.ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° (ΡΠΎΡΡΠΎΡΡΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· HTML / JS / CSS, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΡΡΡΠ°). ΠΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΈ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠΉ ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΠΎΠ»Π° ΠΡΡΠΈΡΠ°ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΠΎΠΌΡ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠΎΠ»Π΅ Π·ΡΠ΅Π½ΠΈΡ, β ΡΡΠΎ Π‘Π²ΡΡΠΎΠΉ ΠΡΠ°Π°Π»Ρ. PRPL ΠΈ ΠΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° β ΡΡΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΡΠΎΠΌ.
ΠΡΠ²ΠΎΠ΄Ρ
Π Π°Π·ΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠ°ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ΅ΡΠ΅ΠΉ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΡΠ΅ΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΠΊ Π¦Π.ΠΠ΅ΡΠΆΠ°ΡΡ ΡΡΠΈ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ.
ΠΠΎΠΌΠ°Π½Π΄ΡΠ΄ΠΎΠ±ΠΈΠ»ΠΈΡΡ ΡΡΠΏΠ΅Ρ Π°, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΡΡΡΠΎΠ³ΠΈΠ΅ Π±ΡΠ΄ΠΆΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΠΠΈΠ·ΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° / ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ JavaScript. Π‘ΠΌ. Β«Can You ΠΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠ΅Π±Π΅ ΡΡΠΎ?: Π Π΅Π°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΡΠ΄ΠΆΠ΅ΡΡ Β» Π΄Π»Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ Π±ΡΠ΄ΠΆΠ΅ΡΡ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ².
ΠΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ JS Β«Π·Π°ΠΏΠ°ΡΠ°Π΅ΡΒ» Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ Π½Π°Ρ Π΄Π»Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠ°ΠΉΡ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ Π²ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ, ΡΡΠΎΠ±Ρ Π½Π° ΡΠΈΠΏΠΈΡΠ½ΠΎΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠΊΡΠ°ΡΠ°ΠΉΡΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° / ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ JavaScript ΠΈ ΠΏΡΠΈΠ½ΡΡΡ Π±ΡΠ΄ΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ Π²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠ³Π»Π° ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΈΡ ΡΡΠΎΠΈΠΌΠΎΡΡΡ JavaScript.
Π£Π·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅
optimize-js β npm
ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» JavaScript Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°, Π·Π°ΠΊΠ»ΡΡΠΈΠ² Π² ΡΠΊΠΎΠ±ΠΊΠΈ Π²ΡΠ΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Ρ.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΌ. Π ΠΆΡΡΠ½Π°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ
npm install -g optimize-js
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
optimize-js input.js> output.js
ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
! Function () {} ()
function runIt (fun) {fun ()}
runIt (function () {})
ΠΡΠΈΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π°:
! (Function () {}) ()
function runIt (fun) {fun ()}
runIt ((function () {}))
ΠΠ±Π·ΠΎΡ ΡΠ΅ΡΡΠ°
ΠΡΠ°ΡΠ·Π΅Ρ | Π’ΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ / ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ optimize-js |
---|---|
Π₯ΡΠΎΠΌ 55 | 20.63% |
ΠΡΠΎΠΌΠΊΠ° 14 | 13,52% |
Firefox 50 | 8,26% |
Safari 10 | -1,04% |
ΠΡΠΈ ΡΠΈΡΠ»Π° ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΡΠ΅ΡΡΠ΅ ΠΎΠ±ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ JS. ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ΅ΡΡΠ°Ρ ΡΠΌ. Π ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠ΅ΡΡΡ.
CLI
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅: optimize-js [ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ]
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
--source-map Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ ΠΊΠ°ΡΡΡ [Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅]
-h, --help ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΏΡΠ°Π²ΠΊΡ [Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅]
ΠΡΠΈΠΌΠ΅ΡΡ:
optimize-js input.js> output.js ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ input.js
optimize-js output.js ΡΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ· stdin, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² stdout
JavaScript API
var optimizeJs = require ('optimize-js');
var input = "! Function () {console.log ('ΠΎΠ±Π΅ΡΠ½ΠΈΡΠ΅ ΠΌΠ΅Π½Ρ!')}";
var output = optimizeJs (Π²Ρ ΠΎΠ΄);
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ:
var optimizeJs = require ('optimize-js');
var input = "! Function () {console.log ('ΠΎΠ±Π΅ΡΠ½ΠΈΡΠ΅ ΠΌΠ΅Π½Ρ!')}";
var output = optimizeJs (input, {
sourceMap: true
});
ΠΠΎΡΠ΅ΠΌΡ?
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ JavaScript, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ V8, Chakra ΠΈ SpiderMonkey, ΠΈΠΌΠ΅ΡΡ ΡΠ²ΡΠΈΡΡΠΈΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.ΠΡΠ°ΠΏ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΈΠ·Π±Π΅Π³Π°Ρ Π·Π°ΡΡΠ°Ρ Π½Π° ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·.
ΠΡΠ° ΡΠ²ΡΠΈΡΡΠΈΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΡΠΎ Π½Π° ΡΡΠ΅Π΄Π½Π΅ΠΉ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ JavaScript Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΊΠ°Π·Π½Π΅Π½Ρ ΠΈΠ»ΠΈ Π»Π΅Π½ΠΈΠ²ΠΎ ΠΊΠ°Π·Π½Π΅Π½Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°, ΠΏΡΠΎΠ²Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΡΡΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΡ ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ (Ρ.Π΅. ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π»ΠΈ ΠΎΠ½Π° ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ).
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (IIFE), ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΡΠΈ:
(ΡΡΠ½ΠΊΡΠΈΡ () {console.log ('Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ!')}) ();
(ΡΡΠ½ΠΊΡΠΈΡ () {console.log ('Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π² ΡΡΠΈΠ»Π΅ ΠΡΠΎΠΊΡΠΎΡΠ΄Π°!')} ());
! Function () {console.log ('Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π² ΡΡΠΈΠ»Π΅ UglifyJS!')} ();
Π₯ΠΎΡΠΎΡΠ°Ρ Π½ΠΎΠ²ΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ JS-Π΄Π²ΠΈΠΆΠΊΠΈ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ , Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ IIFE ΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΡΠ°ΠΏ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°. Π£ΡΠ°!
ΠΠ»ΠΎΡ
Π°Ρ Π½ΠΎΠ²ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ° ΡΠ²ΡΠΈΡΡΠΈΠΊΠ° Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΠΆΠ°Π΄Π½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠΊΠ΅Π½Π° '('
ΡΡΠ°Π·Ρ ΡΠ»Π΅Π²Π° ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ.(ΠΠ°ΡΡΠ΅Ρ
ΠΈΠ·Π±Π΅Π³Π°Π΅Ρ ΡΠ΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΡΠ°Π²Π½ΠΎΡΠΈΠ»ΡΠ½ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ·Ρ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ, ΡΠ²ΠΎΠ΄Ρ Π½Π° Π½Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°).
Π ΡΠ»ΡΡΠ°ΡΡ
Π±Π΅Π· ΠΏΠ°ΡΠ΅Π½Π° (ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ
ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ UMD / Browserify / Webpack / ΠΈ Ρ. Π΄.), Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π²Π°ΠΆΠ΄Ρ , ΡΠ½Π°ΡΠ°Π»Π° ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·, Π° Π²ΡΠΎΡΠΎΠΉ
ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠ΄ JavaScript Π² ΡΠ΅Π»ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΡΡΠ°ΡΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ. Π‘ΠΌ. Β«Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉΒ», ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠ»ΠΎΡ
ΠΎ.
Π ΡΡΠ°ΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ '('
Π΄Π»Ρ IIFE Ρ
ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Π°, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ,
ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· Π²ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° JavaScript (ΡΠΎΡΠΊΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π±Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ) ΠΈ Π²ΡΡΠ°Π²ΠΊΠ° ΡΠΊΠΎΠ±ΠΎΠΊ Π² ΡΠ΅Ρ
ΡΠ»ΡΡΠ°ΡΡ
, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π½Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° (ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ Ρ
ΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ³Π°Π΄ΠΊΠ°). ΠΡΠΎ ΡΠΎ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ optimize-js
.
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ IIFE ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΡΠΎΠΌ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ.ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΌΠΎΠΈΡ ΠΌΡΡΠ»Π΅ΠΉ ΠΎ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅.
Π§Π°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ?
Π’Π΅ΠΊΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅:
- ΠΡΠ·ΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π²ΡΠ·ΠΎΠ²Π° (
function () {} ()
,! Function () {} ()
ΠΈ Ρ. Π.) - ΠΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± β Π»Π΅Π³ΠΊΠΈΠΉ Π²ΡΠΈΠ³ΡΡΡ β ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.ΠΡΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΠ²ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΡΠ°Π²ΠΊΠΎΠΉ, ΡΡΠΈΡΡΠ²Π°Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΡΠΈΠ»Π΅ ΡΠ·Π»Π°, ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉ ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ UMD / Browserify / Webpack.
ΠΠΎ Π²ΡΠ΅Ρ
ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
optimize-js
Π·Π°ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ.
ΠΠΎ β¦ Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ Π±Π°ΠΉΡΡ!
ΠΠ°, optimize-js
ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎ Π΄Π²ΡΡ
Π±Π°ΠΉΡΠΎΠ² (ΡΠΆΠ°Ρ!) ΠΠ° ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ, Π΅ΡΠ»ΠΈ Π²Ρ
ΡΡΡΠΈΡΠ΅ gzip. Π§ΡΠΎΠ±Ρ Π΄ΠΎΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ, Π²ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΡ gzip Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π² ΡΠ΅ΡΡΠ΅:
Π‘ΠΊΡΠΈΠΏΡ | Π Π°Π·ΠΌΠ΅Ρ (Π±Π°ΠΉΡΡ) | Π Π°Π·Π½ΠΈΡΠ° (Π±Π°ΠΉΡΡ) |
---|---|---|
ΡΠ΅ΡΡΡ / create-react-app.ΠΌΠΈΠ½. js | 160387 | |
ΡΠ΅ΡΡΡ / create-react-app.min.optimized.js | 160824 | + 437 |
ΡΠ΅ΡΡΡ / immutable.min.js | 56738 | |
ΡΠ΅ΡΡΡ / immutable.min.optimized.js | 56933 | + 195 |
ΡΠ΅ΡΡΡ / jquery.min.js | 86808 | |
ΡΠ΅ΡΡΡ / jquery.min.optimized.js | 87109 | + 301 |
ΡΠ΅ΡΡΠΎΠ² / lodash.ΠΌΠΈΠ½. js | 71381 | |
ΡΠ΅ΡΡΡ / lodash.min.optimized.js | 71644 | + 263 |
ΡΠ΅ΡΡΡ / pouchdb.min.js | 140332 | |
ΡΠ΅ΡΡΡ / pouchdb.min.optimized.js | 141231 | + 899 |
ΡΠ΅ΡΡΠΎΠ² / three.min.js | 486996 | |
ΡΠ΅ΡΡΠΎΠ² / three.min.optimized.js | 487279 | + 283 |
ΠΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π»ΠΈ
optimize-js
Π΄Π»Ρ Π°Π²ΡΠΎΡΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ? ΠΠΎΠ½Π΅ΡΠ½ΠΎ! ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠΎ Π½Π΅Ρ ΠΏΡΠΈΡΠΈΠ½ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ optimize-js
(ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ Π²Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ!).ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ optimize-js
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΠΎΡΠ»Π΅ Uglify, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Uglify ΡΠ΄Π°Π»ΡΠ΅Ρ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ IIFE ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Uglification ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΌΠ΅Π½Π΅Π½Π°.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ optimize-js
ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΡΠ²ΡΠΈΡΡΠΈΠΊΠ΅, Π° Π½Π΅ , ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. (ΠΡΠΈΠΌΠ΅ΡΡ ΡΠΌ. Π ΡΠ΅ΡΡΠ°Ρ
Π½ΠΈΠΆΠ΅.ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ optimize-js
β ΡΡΠΎ ΠΏΠΎΠΌΠΎΡΡ, Π° Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ
Π° Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π³ΡΠ°Π½ΠΈΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡΡΡ, ΡΡΠΎΠ±Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° / ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΡΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΡΠ΅ΡΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ, Π² Π½Π°ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ .
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΠ°ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΡΠΊΠΈ ΠΎΡΠΌΠ΅ΡΠΊΠΈ / ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π½Π° ΡΠΊΠ°Π»Π΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Dev Tools, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ! ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΏΠΎΠ³ΡΠ°Π½ΠΈΡΠ½Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°, Π·Π°Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° edge.ms.
Π Π°Π·Π²Π΅ ΡΡΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°Π±ΠΎΡΠΎΠΉ Π£Π³Π»ΠΈΡΠΈ?
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ! ΠΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΏΡΠΈΠ·ΡΠ²Π°Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Ρ ΠΎΡΠΎΡΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ.:)
ΠΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π΅ ΠΎΠ±Π΅ΡΠ½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ°ΡΠ΅Π½ΠΎΠΌ?
ΠΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
β ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠ°Ρ ΠΈΠ΄Π΅Ρ Π΄Π»Ρ ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ², Π³Π΄Π΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ
Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ optimize-js
Π·Π½Π°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π·ΡΠΌΠ½ΡΠΉ
Π΄ΠΎΠ³Π°Π΄ΠΊΠΈ), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π·ΡΠΌΠ½ΡΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ°ΡΠ΅Π½-Ρ
Π°ΠΊ.
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° JavaScript?
Π‘ΡΠ΄Ρ ΠΏΠΎ ΠΌΠΎΠΈΠΌ ΡΠ΅ΡΡΠ°ΠΌ, ΡΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ V8 (Chrome), Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Chakra (Edge), Π° Π·Π°ΡΠ΅ΠΌ SpiderMonkey (Firefox).ΠΠ»Ρ JavaScriptCore (Safari) ΡΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΏΡΠΎΠΌΡΠ²ΠΊΡ, ΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅Π³ΡΠ΅ΡΡ Π² ΡΠ΅Π»ΠΎΠΌ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ. (ΠΠΏΡΡΡ ΠΆΠ΅, Π²ΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π²Π°ΡΠ΅ΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅, Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ , Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΡΠ΅ΡΠ΅ΡΡ!)
Π ΡΠ»ΡΡΠ°Π΅ Ρ Chakra IIFE Π² ΡΡΠΈΠ»Π΅ Uglify Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ optimize-js
Π½Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ
ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΎΠΈΡ '('
ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ Π² Π±ΡΡΡΡΡΠΉ ΠΏΡΡΡ.
ΠΡΠΈΠ΅Π½ΡΠΈΡΡ
ΠΡΠΈ ΡΠ΅ΡΡΡ Π±ΡΠ»ΠΈ Π·Π°ΠΏΡΡΠ΅Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΡΡ
Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ .now ()
ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅ΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°Π»ΠΎΡΡ ΠΎ ΡΡΠ΅Π΄Π½Π΅ΠΌ 251 ΠΏΡΠΎΠ³ΠΎΠ½Π΅. optimize-js
commit da51013 Π±ΡΠ» ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½. ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π±ΡΠ»Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ uglifyjs -mc
, Uglify 2.7.0.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΆΠΈΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ΅ΡΡΠ°.
Chrome 55, Windows 10 RS1, Surfacebook i5
Π‘ΠΊΡΠΈΠΏΡ | ΠΡΠΈΠ³ΠΈΠ½Π°Π» | ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ | Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ | ΠΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ | ΠΌΠΈΠ½. + ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ | Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ |
---|---|---|---|---|---|---|
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React | 55.39 ΠΌΡ | 51,71 ΠΌΡ | 6,64% | 26,12 ΠΌΡ | 21,09 ΠΌΡ | 19,26% |
Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ JS | 11,61 ΠΌΡ | 7,95 ΠΌΡ | 31,50% | 8,50 ΠΌΡ | 5,99 ΠΌΡ | 29,55% |
jQuery | 22,51 ΠΌΡ | 16,62 ΠΌΡ | 26,18% | 19,35 ΠΌΡ | 16,10 ΠΌΡ | 16.80% |
ΠΠΎΠ΄Π°Ρ | 20,88 ΠΌΡ | 19,30 ΠΌΡ | 7,57% | 20,47 ΠΌΡ | 19,86 ΠΌΡ | 3,00% |
Π§Π΅Ρ ΠΎΠ» DB | 43,75 ΠΌΡ | 20,36 ΠΌΡ | 53,45% | 36,40 ΠΌΡ | 18,78 ΠΌΡ | 48,43% |
Π’ΡΠΈ JS | 71,04 ΠΌΡ | 72,98 ΠΌΡ | -2,73% | 54.99 ΠΌΡ | 39,59 ΠΌΡ | 28,00% |
ΠΠ±ΡΠ΅Π΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅: 20,63%
Edge 14, Windows 10 RS1, SurfaceBook i5
Π‘ΠΊΡΠΈΠΏΡ | ΠΡΠΈΠ³ΠΈΠ½Π°Π» | ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ | Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ | ΠΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ | ΠΌΠΈΠ½. + ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ | Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ |
---|---|---|---|---|---|---|
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React | 32,46 ΠΌΡ | 24,85 ΠΌΡ | 23.44% | 26,49 ΠΌΡ | 20,39 ΠΌΡ | 23,03% |
Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ JS | 8,94 ΠΌΡ | 6,19 ΠΌΡ | 30,74% | 7,79 ΠΌΡ | 5,41 ΠΌΡ | 30,55% |
jQuery | 22,56 ΠΌΡ | 14,45 ΠΌΡ | 35.94% | 16,62 ΠΌΡ | 12,99 ΠΌΡ | 21,81% |
ΠΠΎΠ΄Π°Ρ | 22.16 ΠΌΡ | 21,48 ΠΌΡ | 3,05% | 15,77 ΠΌΡ | 15,46 ΠΌΡ | 1,96% |
Π§Π΅Ρ ΠΎΠ» DB | 24,07 ΠΌΡ | 21,22 ΠΌΡ | 11,84% | 39,76 ΠΌΡ | 52,86 ΠΌΡ | -32,98% |
Π’ΡΠΈ JS | 43,77 ΠΌΡ | 39,99 ΠΌΡ | 8,65% | 54,00 ΠΌΡ | 36,57 ΠΌΡ | 32.28% |
ΠΠ±ΡΠ΅Π΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅: 13,52%
Firefox 50, Windows 10 RS1, Surfacebook i5
Π‘ΠΊΡΠΈΠΏΡ | ΠΡΠΈΠ³ΠΈΠ½Π°Π» | ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ | Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ | ΠΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ | ΠΌΠΈΠ½. + ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ | Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ |
---|---|---|---|---|---|---|
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React | 33,56 ΠΌΡ | 28.02 ΠΌΡ | 16,50% | 24,71 ΠΌΡ | 22.05 ΠΌΡ | 10,76% |
Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ JS | 6,52 ΠΌΡ | 5,75 ΠΌΡ | 11.80% | 4,96 ΠΌΡ | 4,58 ΠΌΡ | 7,47% |
jQuery | 15,77 ΠΌΡ | 13,97 ΠΌΡ | 11,41% | 12,90 ΠΌΡ | 12,15 ΠΌΡ | 5,85% |
ΠΠΎΠ΄Π°Ρ | 17,08 ΠΌΡ | 16,63 ΠΌΡ | 2.64% | 13,11 ΠΌΡ | 13,22 ΠΌΡ | -0,80% |
Π§Π΅Ρ ΠΎΠ» DB | 19,23 ΠΌΡ | 16,77 ΠΌΡ | 12,82% | 13,77 ΠΌΡ | 12,89 ΠΌΡ | 6,42% |
Π’ΡΠΈ JS | 38,33 ΠΌΡ | 37,36 ΠΌΡ | 2,53% | 33.01 ΠΌΡ | 30,32 ΠΌΡ | 8,16% |
ΠΠ±ΡΠ΅Π΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅: 8.26%
Safari 10, macOS Sierra, MacBook Pro i5 2013 Π³ΠΎΠ΄Π° Π²ΡΠΏΡΡΠΊΠ°
Π‘ΠΊΡΠΈΠΏΡ | ΠΡΠΈΠ³ΠΈΠ½Π°Π» | ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ | Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ | ΠΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ | ΠΌΠΈΠ½. + ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ | Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ |
---|---|---|---|---|---|---|
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React | 31,60 ΠΌΡ | 31,60 ΠΌΡ | 0,00% | 23,10 ΠΌΡ | 23,50 ΠΌΡ | -1,73% |
Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ JS | 5.70 ΠΌΡ | 5,60 ΠΌΡ | 1,75% | 4,50 ΠΌΡ | 4,50 ΠΌΡ | 0,00% |
jQuery | 12,40 ΠΌΡ | 12,60 ΠΌΡ | -1,61% | 10,80 ΠΌΡ | 10,90 ΠΌΡ | -0,93% |
ΠΠΎΠ΄Π°Ρ | 14,70 ΠΌΡ | 14,50 ΠΌΡ | 1,36% | 11,10 ΠΌΡ | 11,30 ΠΌΡ | -1.80% |
Π§Π΅Ρ ΠΎΠ» DB | 14,00 ΠΌΡ | 14.20 ΠΌΡ | -1,43% | 11,70 ΠΌΡ | 12,10 ΠΌΡ | -3,42% |
Π’ΡΠΈ JS | 35,60 ΠΌΡ | 36,30 ΠΌΡ | -1,97% | 27,50 ΠΌΡ | 27,70 ΠΌΡ | -0,73% |
ΠΠ±ΡΠ΅Π΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅: -1,04%
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° Π²Π°Ρ Π¦Π, Π³ΡΠ΅ΠΌΠ»ΠΈΠ½ΠΎΠ² ΠΈ Ρ. Π.Π― Π·Π°ΠΏΡΡΠΊΠ°Π» ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π²ΠΎ Π²ΡΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΡΡΠΈ ΡΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ΅ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠ²Π½Ρ. Π Π½Π°ΡΠ΅ΠΌ Π½Π°Π±ΠΎΡΠ΅ ΡΠ΅ΡΡΠΎΠ² ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 151 Π·Π°ΠΏΡΡΠΊ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π²Π°ΡΠΈΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΠ»Π°Π³ΠΈΠ½Ρ
Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @krisselden, @bmaurer ΠΈ @pleath Π·Π° ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²ΡΠΏΡΡΠΊΠ°Ρ GitHub. Π’Π°ΠΊΠΆΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ astexplorer, acorn ΠΈ magic-string Π·Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π‘Π°ΡΠ΅ ΠΠΉΠΊΠΈΠ½Ρ Π·Π° ΡΠ΅Π΄ΡΡΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² v1.0,3) ΠΈ ΠΏΠΎΠ΄ΡΠ°Π»ΠΊΠΈΠ²Π°Π΅Ρ ΠΌΠ΅Π½Ρ ΠΊ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΡΠΎΠ².
Π‘ΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅
Π‘Π±ΠΎΡΠΊΠ° ΠΈ Π·Π°ΠΏΡΡΠΊ ΡΠ΅ΡΡΠΎΠ²:
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ΅ΡΡΡ:
ΠΠΎΠΊΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
ΠΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
- v1.0.3
- ΠΠ°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΡΠΉ ΡΠ΅ΡΡ (# 37)
- ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Browserify (# 29, # 36, # 39)
- ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ Webpack (# 7, # 34)
- v1.0.2
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ estree-walker Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ES6 (# 31)
- v1.0,1:
- ΠΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ process.exit (0) Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° (# 11)
- v1.0.0
ΠΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΠ°Π²ΠΊΡ JavaScript Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°
JavaScript β Π²Π°ΠΆΠ½ΡΠΉ Π°ΡΠΏΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΡΠΎΠ², Π½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠΏΠΎΡΠΎΠ± Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ. ΠΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°ΠΉΠ», ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΉ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ, JavaScript Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ½ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π Π°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² JavaScript, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π²Π»ΠΈΡΡΡ Π½Π° Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. JavaScript ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π½Π° Π»Π΅ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΅Π³ΠΎ.ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ JavaScript Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ΅ΠΉ, ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ².
ΠΡΠΎΡ ΠΏΠΎΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ²ΡΡΠ΅Π½ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π΄Π»Ρ JavaScript: ΠΏΠΎΡΠ΅ΠΌΡ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ, ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ ΠΈ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΡΠ»ΠΊΠ°ΠΌ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ JavaScript ΡΠ°ΠΊΠΆΠ΅ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π²Π°ΠΆΠ½Π° Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ², Π½ΠΎ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎΠ± ΡΡΠΎΠΌ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°ΠΉΠ»Π° JS
ΠΠ° ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°Ρ ΡΠ°ΠΉΡΠΎΠ², ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ HTTP-Π°ΡΡ ΠΈΠ²Π°, Π½Π° JavaScript ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ 15% Π²Π΅ΡΠ° ΡΡΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΈ 16% Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡ.ΠΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΡΡΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 400 ΠΠ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΠ΅Π½Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ 360 ΠΠ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠ»ΠΈ ΡΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΎΡΠΊΡΡΡΠΎΠ΅ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 14 ΠΠ Π΄Π°Π½Π½ΡΡ , ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ, ΡΡΠΎ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°ΠΉΠ»Π° JS ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ.
ΠΠΎ 400 ΠΠ JavaScript Π½Π΅ ΡΠ°Π²Π½Ρ 400 ΠΠ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΎΡΡΠ°ΡΡΠΈ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° JavaScript ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ Π½Π΅ΡΠΆΠ°ΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΠ°ΠΉΡ Π·Π° Π±Π°ΠΉΡΠΎΠΌ, JavaScript Π΄ΠΎΡΠΎΠΆΠ΅, ΡΠ΅ΠΌ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π¦Π ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.ΠΡΠ»ΠΈ ΡΡΠ΅ΡΡΡ, ΡΡΠΎ ΡΠΆΠ°ΡΠΈΠ΅ GZIP ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π° 70β90%, 400 ΠΠ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² 1,3β4,0 ΠΠ.
Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ JS-Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ
ΠΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΎΠΉ JavaScript? ΠΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π°, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ:
- Π£ΡΠΊΠΎΡΡΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΡ JS Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
- Π£ΠΌΠ΅Π½ΡΡΠΈΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌ JS, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ.
- ΠΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ ΡΠ΅ΡΡΡΡΡ JS ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ JS.
- Π‘Π°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ JS (ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡ-Π²ΠΎΡΠΊΠ΅ΡΠ°).
- Π‘ΠΆΠ°ΡΡ JS.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ push ΠΈ preload Π΄Π»Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ JS.
- ΠΠ°Π³ΡΡΠΆΠ°ΠΉΡΠ΅ JS ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ.
- Π£Π΄Π°Π»ΠΈΡΡ ΠΌΠ΅ΡΡΠ²ΡΠΉ ΠΊΠΎΠ΄ JS.
- Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² JS Π΄Π»Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ JS-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
- ΠΡΡ JS.
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΎΠ±Π΅ΠΈΡ ΡΠ΅Π»Π΅ΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΌΡ JavaScript, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ.
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π²Π°ΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²Π°ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ Π±Π°Π·Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ. Real User Monitoring ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Ρ ΡΡΠ΅Π΄ΠΈ Π²Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈ ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΡΠ±ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π²Π½ΠΎΡΠΈΡΠ΅ Π½Π° ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΡ.
Π£ΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ JS Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
Π£ΠΌΠ΅Π½ΡΡΠΈΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌ JS, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ JavaScript, ΡΡΡΠ°Π½ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅.
ΠΠ΅ Π·Π½Π°Π΅ΡΠ΅, Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ? ΠΡ ΡΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ JS β ΡΡΠΎ ΡΠ°ΠΌΡΠΉ Π΄ΠΎΡΠΎΠ³ΠΎΠΉ Π²ΠΈΠ΄ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ Π½Π΅ΠΌ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ»Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JavaScript Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΡΡΡΠ°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ β ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ², Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ ΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ β Π° Π½Π΅ Π΄Π»Ρ Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π°ΡΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΊΠΈΡ , ΡΠ°ΡΡΡΠ½ΡΡΡΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΉ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π»ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ JavaScript, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΠΌΠΈ ΠΈΠ»ΠΈ Π½Π΅ Π²Π°ΠΆΠ½Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΈΡΠ° Π΄Π΅Π»Π°Π»Π°? ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎΠ± ΠΈΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠΈ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Google ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° Π²ΠΎΡΠΏΡΠΈΡΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠ΄ΠΈΡΡ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ JS Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΠΎΡΠΏΡΠΈΡΡΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ | |
ΠΎΡ 0 Π΄ΠΎ 16 ΠΌΡ | ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΈ Π² ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ, ΠΈ ΠΈΠΌ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π°Π½ΠΈΠΌΠ°ΡΠΈΡ Π½Π΅ ΠΏΠ»Π°Π²Π½Π°Ρ.ΠΠ½ΠΈ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ»Π°Π²Π½ΡΡ, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡΡ 60 Π½ΠΎΠ²ΡΡ ΠΊΠ°Π΄ΡΠΎΠ². ΠΡΠΎ 16 ΠΌΡ Π½Π° ΠΊΠ°Π΄Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠ°Π΄Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΎΡΡΠ°Π²Π»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠΊΠΎΠ»ΠΎ 10 ΠΌΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°Π΄ΡΠ°. |
ΠΎΡ 0 Π΄ΠΎ 100 ΠΌΡ | ΠΡΠ²Π΅ΡΠ°ΠΉΡΠ΅ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΠ²ΡΡΠ²ΡΡΡ, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ. ΠΡΠ»ΠΈ Π΄ΠΎΠ»ΡΡΠ΅, ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ ΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ Π½Π°ΡΡΡΠ°Π΅ΡΡΡ. |
ΠΎΡ 100 Π΄ΠΎ 300 ΠΌΡ | Π£ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ Π·Π°ΠΌΠ΅ΡΠ½Π°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°. |
ΠΎΡ 300 Π΄ΠΎ 1000 ΠΌΡ | Π ΡΡΠΎΠΌ ΠΎΠΊΠ½Π΅ Π²ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΡΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π·Π°Π΄Π°ΡΡ. |
1000 ΠΌΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ | ΠΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ 1000 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ (1 ΡΠ΅ΠΊΡΠ½Π΄Π°) ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ΅ΡΡΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅. |
10000 ΠΌΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ | ΠΡΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠΈ 10000 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ (10 ΡΠ΅ΠΊΡΠ½Π΄) ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΠΈ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠΎΡΡΡ Π·Π°Π΄Π°ΡΠΈ.ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π²Π΅ΡΠ½ΡΡΡΡΡ, Π° ΠΌΠΎΠ³ΡΡ ΠΈ Π½Π΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅. |
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ JS
ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ΄Π°Π»ΡΠ΅Ρ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ ΠΏΡΠ΅ΠΏΠΈΠ½Π°Π½ΠΈΡ, ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡΡΠΈΠ½Π½Π°Ρ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π±Π°ΠΉΡΠΎΠ² Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ, ΡΠ΅ΠΌ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΡΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ.
Π ΡΠ΅ΡΠΈ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π½Π΅ Π²ΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ. ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, ΡΡΠΎ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°, ΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΡΠΎΡΠΌΡ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.Π§Π΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ Π±Π°ΠΉΡΠΎΠ² Π΄Π°Π½Π½ΡΡ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ Π½Π° ΡΠ°ΠΉΠ» JavaScript, ΡΠ΅ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΠΎΠ½ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΈ ΡΠ΅ΠΌ Π±ΡΡΡΡΠ΅Π΅ Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠΌΠΎΠΆΠ΅Ρ Π΅Π³ΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ.
Π‘Π°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ JS, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ (ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡ-Π²ΠΎΡΠΊΠ΅ΡΠ°)
Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ JavaScript Π² Π²Π°ΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ β Π²Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠ°, Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² API ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ Π±Π΅Π· ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ β Π½ΠΎ ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π²Π°ΡΠ΅Π³ΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°. Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π°ΡΡ ΡΠ΅ΡΡ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π»ΡΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ.ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ (ΡΠΌ. Β«Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°Β» Π½ΠΈΠΆΠ΅).
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡ-Π²ΠΎΡΠΊΠ΅ΡΠ° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ ΡΠ°ΡΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ ΠΈΠ· ΡΠ΅ΡΠΈ, Ρ ΠΎΡΡ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠ°ΠΊΠΈΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ, ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΠΉ Ρ ΠΎΡΡΠΈΠ½Π³ Π΄Π»Ρ ΡΠ°ΠΉΡΠΎΠ² Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ.
Π‘ΠΆΠ°ΡΠΈΠ΅ JS
Π‘ΠΆΠ°ΡΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π°.ΠΡΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ JavaScript ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎ, ΡΡΡΡΠ°Π½ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ ΡΠΈΠΊΠ»Π°Ρ . Π‘ΠΆΠ°ΡΠΈΠ΅ JavaScript Π²ΠΌΠ΅ΡΡΠ΅ Ρ CSS ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ Π²Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π²Π΄Π²ΠΎΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ»ΡΠΎΠΊ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π΄Π»Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ JS
Server push ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΡΡ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ°Π½ΡΡΠ΅ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎ.
Π€Π°ΠΉΠ» Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ push, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° β ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΈ Π΅ΠΌΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΡΠ΅ΡΡΡΡΡ x, y ΠΈ z Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΈΠΌ.ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ push ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² HTTP / 2.
Preload Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ, Π³Π΄Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ Π°ΡΡΠΈΠ±ΡΡ Β«preloadΒ» Π² ΡΠ°ΠΉΠ»Π΅ HTML. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ββΠΈ ΠΏΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· HTML, ΡΡΠΈ ΡΠ΅ΡΡΡΡΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· HTML, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΅ΡΡΡΡΡ Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π΅ Π² ΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² HTML.
ΠΠ°Π³ΡΡΠΆΠ°ΡΡ JS ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ» JavaScript Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄.ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ» JavaScript Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°. ΠΠ»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π½Π°ΡΡ, ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ.
Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΈ Π²ΡΡΡΡΡ ΠΈΠ²Π°Π½ΠΈΠΈ Π΄Π΅ΡΠ΅Π²Π°
ΠΡΡΡΡΡ ΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²Π°, ΠΈΠ»ΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΆΠ΅ Π΄ΠΎΠ³Π°Π΄Π°Π»ΠΈΡΡ, ΠΎΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅Ρ Π½Π° Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ JQuery, Π½ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΡ JQuery, Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ°ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ JQuery, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅.
Π’Π΅ΡΠΌΠΈΠ½ Β«Π²ΡΡΡΡΡ ΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²Π°Β» ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π» Rollup, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π½ΠΎ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ΅ΡΠ΅Π· webpack ΠΈ source-map-explorer. ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ES2015, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΡ JS Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ . ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ CommonJS, Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ webpack-common-shake, Π½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ CommonJS Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ.Π Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΡΡ ΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π², Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π±ΡΠ΄Π΅Ρ ES2015 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ.
ΠΠΎΡΡΠ°Π²ΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Ρ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΡΡΡΡΡΠ° ΠΈΠ»ΠΈ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π°
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΡΡΡΡΡΠΎΠ², ΠΈΠ»ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ JS Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π²ΠΈΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ½Π°ΡΠ°Π»Π° Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° JS Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ JavaScript, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅.
Π’ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅, Π³Π΄Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ΄, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΠΏΠ° Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΡΠΎ Π²Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈ ΠΊΠ°ΠΊΠΎΠ²Π° Π²Π°ΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠ² ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°:
- Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΠΎΡΠ΄Π΅Π»ΡΠ΅Ρ Π²Π°Ρ JS ΠΎΡ JS, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠΌ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ React ΠΈΠ»ΠΈ Vue. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΊΠΎΠ΄Π°. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
- Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΡΠ΅ΠΊ Π²Ρ ΠΎΠ΄Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ Π²Π°Ρ ΠΊΠΎΠ΄ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π³Π΄Π΅ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅Ρ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠ°ΠΉΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, SPA ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°), ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΠ΅ΠΊ Π²Ρ ΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΌΡΡΠ». ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΊΠ°ΠΊ Bundle Buddy, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² Π΄Π΅ΡΠ΅Π²ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅.
- ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Ρ
ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
import ()
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅.ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠΌΠΏΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ async / await. Parcel ΠΈ webpack Π±ΡΠ΄ΡΡ ΠΈΡΠΊΠ°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡimport ()
Π΄Π»Ρ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ JS-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² async
ΠΈ defer
Π΄Π»Ρ Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡΠΌΠΈ. Π async
, ΠΈ defer
ΡΠ²Π»ΡΡΡΡΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΌΠΈ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΡ
ΠΈΠΌΠΈ ΡΠ΅ΡΡΡΡΠΎΠ².ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ? ΠΠ»Ρ JavaScript ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΌ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ, ΠΏΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠΈ ΡΠ°Π³ΠΈ.
ΠΡΡΠΈΠ±ΡΡ async
ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π½Π°Π΄ defer
Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² Π»ΡΡΡΠ΅ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ JavaScript. Π ΡΡΠ°ΡΡΡ
Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
Π²ΡΠ΅ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ JavaScript ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡΠΎΠΊΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ°.JavaScript Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΎΠΉ async
Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ JavaScript Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΎΠΉ defer
. Π‘ΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ JavaScript Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΠΈ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ (ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠΎΠ³Π΄Π°).
ΠΡΡ JS
ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΈ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡ-Π²ΠΎΡΠΊΠ΅ΡΠΎΠ². ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ°ΡΠ·Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠ΅ΡΡΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΅Π³ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΡΡΡΡΠ΅Π΅, Π½Π΅ ΡΡΠ΅Π±ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ· ΠΊΠ΅ΡΠ°.
ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ JavaScript ΠΏΠΎΡΡΠΈ Π² Π»ΡΠ±ΡΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ .
Takeaways and TL; DR
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π΅Π»Π°Π΅Ρ JavaScript Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ, ΡΠ΅ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ. Π₯ΠΎΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π·Π°ΠΏΡΡΠ°Π½Π½ΡΠΌ, Π΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»Π΅ΠΉ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΡΠ΅ΠΌΡΡΡΡ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ JavaScript:
- ΠΠ΅Π½ΡΡΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ
- ΠΡΡΡΡΠ°Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°
- ΠΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°
Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΡΠ·Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ.ΠΠ΅Π½ΡΡΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΡΠ°Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΈΡ Π±ΡΡΡΡΠ΅Π΅.
TL; DR- Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ³ΠΎ JavaScript, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠΆΠ°ΡΠΈΠ΅ JavaScript, Π²ΡΡΡΡΡ ΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²Π° ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° β Π²ΡΠ΅ ΡΡΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΌ JavaScript, Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ.
- ΠΠΎΡΡΠ°Π²ΠΊΠ° ΡΠ΅ΡΡΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΡΠ²ΠΈΡ-Π²ΠΎΡΠΊΠ΅ΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ, Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π»ΠΈ JavaScript Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ.
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ² Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΈ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ JavaScript ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅.
ΠΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π°, Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²Π½Π΅Π΄ΡΡΡΡ ΠΈΡ , Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Π»ΠΈΡΡΡ Π½Π° Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ Π±Π°Π·Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΠΎΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ ΠΎ ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΠ΅Π»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ JavaScript β Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ JavaScript.
<<< Π§Π°ΡΡΡ 1: ΠΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅
<< Π§Π°ΡΡΡ 2: ΠΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ CSS Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅
<Π§Π°ΡΡΡ 3: ΠΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ HTML Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΠΈ
ΠΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ JavaScript β Stackify
JavaScript β ΡΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΡΠ·ΡΠΊ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.ΠΠ·-Π·Π° ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ JavaScript ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ·Π½Π°Π΅ΠΌ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ , ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ JavaScript, ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ js.
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ js
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ JavaScript. ΠΠΎΡ ΠΎΠ±ΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ js:
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° :ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ JavaScript Π·Π° ΡΡΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ².
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π±Π΅Π· Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π΄ΠΎΠΌΠ°.
ΠΠ΅ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄JavaScript Π½Π΅ΡΠ΅ΡΠΊΠΈΠΉ, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ»ΡΡΠΎΠΌ ΠΈ ΠΌΠΈΠ½ΡΡΠΎΠΌ.
ΠΠ΅Π»ΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΌΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ JavaScript .ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ECMA Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ JavaScript. .
Π‘Π»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉΠΠ½ΠΎΠ³Π΄Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ JavaScript ΠΏΠ»ΠΎΡ ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΈΠ»ΠΈ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½Ρ. ΠΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΡΡΠΎ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄ΡΡ Π΄ΠΎΠ»ΡΡΠ΅ ΠΆΠ΄Π°ΡΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠ΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.ΠΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΡ ΠΎΡΠΏΡΠ°Π²Π½ΡΡ ΡΠΎΡΠΊΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ JavaScript. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈΠ»ΠΈ ΡΠΈΠΊΠ»ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ JavaScript Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡΡ.
Π‘ΠΎΠ²Π΅ΡΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ js ΠΠ±ΡΠ΅Π·ΠΊΠ° HTMLJavaScript HTML ΡΠ»ΠΎΠΆΠ΅Π½ ΠΈ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠ΅ΡΠ°ΡΡΡΡ ΡΠΎΠ»Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² DOM.
ΠΡΠ»ΠΈ Π²Π΄Π²ΠΎΠ΅ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ HTML-ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²Π΄Π²ΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ DOM.ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΡΠ°ΠΊΠΈΡ ΡΠ΅Π³ΠΎΠ², ΠΊΠ°ΠΊ
ΠΠ°ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ DOM Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠΊΡΠ°Π½Π°. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠΈΠ»Ρ Π²Π½ΠΎΡΠΈΡΠ΅ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ°Π·Ρ, Π° Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΡΠΈΠ»Ρ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ JavaScript ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ API Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΠ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ JavaScript ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. JavaScript ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ async.js.
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ³ΡΠΎΠ·Π° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ².
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ JavaScript ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌ Π²ΡΠ·ΠΎΠ²Π°ΠΌ Ρ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠ².
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ JavaScript . ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π² ΠΊΠΎΠ΄Π΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΡΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΆΠ°ΡΠΈΡ gzipΠ€Π°ΠΉΠ»Ρ JavaScript ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ GZip Π΄Π»Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΈ ΡΠΆΠ°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ². GZip ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ, ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½ΠΈΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ GZip ΡΠ΅ΡΠ²Π΅Ρ ΡΠΆΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ Π² ββΠ±ΡΠ°ΡΠ·Π΅Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HTTP / 2ΠΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ HTTP ΡΠ²Π»ΡΠ΅ΡΡΡ HTTP / 2 Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ JavaScript ΠΈ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ².
HTTP / 2 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ²Π΅ΡΠΎΠ² ΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ DOM
ΠΡΠ»ΠΈ Π΅ΡΡΡ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ DIV, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΡΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² DOM, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π²ΠΈΠ΄Π½Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°. ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΊΠ°ΠΊ Π½Π° ΠΎΠ±Ρ ΠΎΠ΄Π΅ DOM, ΡΠ°ΠΊ ΠΈ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΡΠ²Π΅ΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ.
ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π²Π½Π΅ΡΠ½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ² CSS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Sizzle.js Π²ΠΌΠ΅ΡΡΠΎ jQuery. ΠΠΎΠ³Π΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ CSS ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΡΡΠΈ ΠΈ Π»Π΅Π³ΠΊΠΎΡΡΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° JavaScript ΡΠ½ΠΈΠ·ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ ΠΈ ΠΏΠΎΠ²ΡΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ JavaScript ΡΠΏΡΠΎΡΠΈΡΠ΅ ΡΠ΅Π±Ρ:
- Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΡΡΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅?
- Π ΡΠ΅ΠΌ ΠΏΡΠΈΡΠΈΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°?
- Π‘ΡΠΎΡΡ Π»ΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ?
- ΠΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΠΎΠΏΡΠΎΡΠ΅?
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ JavaScript ΠΏΡΡΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² JS Π² ΠΎΠ΄ΠΈΠ½.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ js ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ:ΠΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ JavaScript, Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Retrace, ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ Real User Monitoring (RUM). RUM ΡΡΠΊΠΎΡΡΠ΅Ρ Π²Π΅Π±-ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΠΎΠ΄. Π’Π°ΠΊΠΎΠΉ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ·ΠΊΠΈΡ ΠΌΠ΅ΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»ΡΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.ΠΠΎ ΠΌΠ΅ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅Π°Π³ΠΈΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Ρ, ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΈ, Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅, Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ°Ρ ΠΏΠΎΠΊΡΠΏΠΊΡ.
Π Π£Π Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠΈ ΠΏΠΎ ΡΠ΅ΡΡΡΡΠ°ΠΌ. Π Π°Π·Π±ΠΈΠ²ΠΊΠ° ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΈ ΡΠΊΡΠΈΠΏΡΡ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ RUM ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠΈΠΏΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΎΠΏΡΡΠ° Π·Π° ΡΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ΅ΡΠ΅ΠΉ CDN.ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ 14-Π΄Π½Π΅Π²Π½ΡΡ ΠΏΡΠΎΠ±Π½ΡΡ Π²Π΅ΡΡΠΈΡ Retrace RUM ΡΠ΅Π³ΠΎΠ΄Π½Ρ.
ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° WordPress
Autoptimize β ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ WordPress. ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ HTML, CSS ΠΈ JavaScript, Autoptimize ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΡΠΎΠ² WordPress.
Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎ Π»ΡΡΡΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π° Autoptimize Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° WordPress.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ?
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΡΠ³Π»ΡΠ±ΠΈΠΌΡΡ Π² Π»ΡΡΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π±ΡΡΡΡΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΈ ΠΏΡΠΈΡΠΈΠ½Ρ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ Autoptimize ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
- ΠΠ΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Autoptimize ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° WordPress.
- Autoptimize β ΡΡΠΎ ΡΡΡΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ HTML-ΡΡΡΠ°Π½ΠΈΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²Π΅Π±-Ρ ΠΎΡΡΠ°ΠΌΠΈ β Π΄Π°ΠΆΠ΅ Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Kinsta.
- Autoptimize ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ 1 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ WordPress ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ JS, CSS ΠΈ HTML
HTML, CSS ΠΈ JavaScript β ΡΡΠΎ Ρ Π»Π΅Π± Ρ ΠΌΠ°ΡΠ»ΠΎΠΌ Π΄Π»Ρ Autoptimize.ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Autoptimize ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ Π·Π°Π΄Π°ΡΡ, ΠΌΡ ΡΠΎΠ±ΡΠ°Π»ΠΈ Π»ΡΡΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ JavaScript
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ JavaScript Π² Autoptimize.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° JavaScript
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΠΎΠΏΡΠΈΡ. ΠΠΎΠ³Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° Β«ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° JavaScriptΒ», ΡΡΠ½ΠΊΡΠΈΡ Autoptimize ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ JavaScript.
Π‘ΠΎΠ²ΠΎΠΊΡΠΏΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ JS
ΠΠΏΡΠΈΡAutoptimize Β«Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ JSΒ» ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ JavaScript Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ».Π ΠΏΡΠΎΡΠ»ΠΎΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² JS ΠΈ CSS Π±ΡΠ»ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ WordPress. Π Kinsta ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ HTTP / 2, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΈ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΆΠ΅ Π½Π΅ ΡΠ°ΠΊ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π½ΡΡΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ HTTP / 2 ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π‘ ΡΡΠ΅ΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ, Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² CSS ΠΈ JS ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ°ΠΉΡΠΎΠ² WordPress, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠ΅ΠΉ.
Π’Π°ΠΊΠΆΠ΅ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ JS
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«ΡΠ°ΠΊΠΆΠ΅ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ JSΒ» ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ JS Π² Π²Π°Ρ HTML ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π΅Π³ΠΎ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ JS Autoptimize. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π±ΡΡΡΡΠΎΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΡΡΠ° Π°Π²ΡΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΠΎΡΠΎΠ±ΡΡ ΠΏΡΠΈΡΠΈΠ½ Π΄Π»Ρ Π΅Π³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JavaScript Π²
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΌΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ JavaScript Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ HTML
Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°.ΠΡΠΈΠ½ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ°Π½Π½Π΅ΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ JS ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ, Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΉΠ»Ρ JavaScript, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ
, ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈΠ· Autoptimize.
ΠΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈΠ· Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΡΠ°ΠΉΠ»Ρ JavaScript ΠΈΠ· Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Autoptimize ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ.
- wp-Π²ΠΊΠ»ΡΡΠ°Π΅Ρ / js / dist /
- wp-Π²ΠΊΠ»ΡΡΠ°Π΅Ρ / js / tinymce /
- js / jquery / jquery.js
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π»ΠΈΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ JavaScript Π±ΡΠ΄ΡΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Β«ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ CSS ΠΈ JSΒ» Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ½ΡΡ ΡΠ»Π°ΠΆΠΎΠΊ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π Π°Π·Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΒ».
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ Try-Catch
ΠΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΎΠΏΡΠΈΠΈ Β«Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ try-catchΒ» Π²Π°Ρ ΠΊΠΎΠ΄ JavaScript Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ Π² Π±Π»ΠΎΠΊΠΈ try-catch. ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½Π° Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΡΠ·Π²Π°Π½Π½ΡΡ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠ΅ΠΉ JS. ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠ°ΠΉΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Β«Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ try-catchΒ», ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ JavaScript, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² try-catch ΠΌΠΎΠΆΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ JS.
Autoptimize: Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ WordPress, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π½Π΅ Π·Π½Π°Π»ΠΈ β¦ Π½ΠΎ ΠΎΠ½ ΡΠ΄Π΅Π»Π°Π΅Ρ Π²Π°Ρ ΡΠ°ΠΉΡ ΠΌΠΎΠ»Π½ΠΈΠ΅Π½ΠΎΡΠ½ΡΠΌ β‘οΈΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, Π·Π°ΡΠ΅ΠΌ Π²Π°ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ πΠΠ°ΠΆΠΌΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΡΠ½ΡΡΡΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ CSS
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ CSS.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° CSS
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΠΎΠΏΡΠΈΡ. ΠΠΎΠ³Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° Β«ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° CSSΒ», ΡΡΠ½ΠΊΡΠΈΡ Autoptimize ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ CSS.
Π‘ΠΎΠ²ΠΎΠΊΡΠΏΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ CSS
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ CSSΒ» Π²Autoptimize ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ CSS Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ».ΠΠ°ΠΊ ΠΌΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅, ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΡΠΈΠ½Π΅ΡΡΠΈ ΠΏΠΎΠ»ΡΠ·Ρ ΡΠ°ΠΉΡΠ°ΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌ HTTP / 2. ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ A / B-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠΈ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ CSS
ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ CSS Π² ΡΠ°ΠΉΠ» CSS Π°Π²ΡΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. Π₯ΠΎΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ CSS Π² ΡΠ°ΠΉΠ» CSS Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ : URI Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΠΎΠ³Π΄Π° ΡΡΠ° ΠΎΠΏΡΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π°, Autoptimize Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π² base64 Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΡΡΠ°Π²Π»ΡΡΡ ΠΈΡ Π² CSS.ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΠΎΠΏΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠ΅Π½ΠΈΡΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ. Π₯ΠΎΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠΎΡΠΌΠ°Ρ base64 ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠ°ΠΉΠ»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ base64 ΠΎΠ±ΡΡΠ½ΠΎ Π½Π° 20-30% Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ.
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΈ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ CSS
ΠΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ CSS ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΉΡΠΎΠ². ΠΠ΄Π΅Ρ Π·Π΄Π΅ΡΡ Π² Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠΈΠ»ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΡ Β«Π½Π°Π΄ ΡΠ³ΠΈΠ±ΠΎΠΌΒ». ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ CSS ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΠΈΡΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΠ»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ.
ΠΡΡΡΠ°ΠΈΠ²Π°Ρ ΡΡΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠΉ ΠΏΠΎΠ»Π½ΡΠΉ CSS-ΡΠ°ΠΉΠ» ΠΏΠΎΠ·ΠΆΠ΅, Π½Π΅ Π²Π»ΠΈΡΡ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΡΡΠ°Π½ΠΈΡΡ. Π₯ΠΎΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π²ΡΡΡΠ½ΡΡ, ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ.
Π‘Π³Π΅Π½Π΅ΡΠΈΡΡΠΉΡΠ΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ CSS.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ CSS ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ Π΅Π³ΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π°Π²ΡΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΡΡΠΎΠΈΡΡ ΠΈ ΠΎΡΠ»ΠΎΠΆΠΈΡΡ CSS Π² Autoptimize.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°.ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΡΡΠ°Π½Π½ΡΠ΅ Π²ΡΠΏΡΡΠΊΠΈ Π½Π΅ΡΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ (FOUC), Π²Π°ΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ Π½Π΅ΡΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠΈΠ»ΠΈ Π² Autoptimize Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ.
Autoptimize ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Β«ΡΡΠΈΠ»Π΅Π½ΠΈΠ΅Β», ΠΊΠΎΡΠΎΡΠΎΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ CSS Π΄Π»Ρ Π²Π°ΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡ WordPress. ΠΠΎ Π½Π°ΡΠ΅ΠΌΡ ΠΎΠΏΡΡΡ, ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΠΎΠ³Π΄Π° Π·Π°ΠΌΠ΅Π΄Π»ΡΡΡ ΡΠ°Π±ΠΎΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ API Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ CSS. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ CSS Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΡΠΊΠ»ΠΈΠΊΠ° Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°.Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² API, ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΡΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΡΡΡΠΎΠΈΡΡ Π²ΡΠ΅ CSS
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ°ΠΉΡΠΎΠ² ΠΌΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π²Π΅ΡΡ CSS, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ CSS Π΄Π΅Π»Π°Π΅Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ CSS Π² Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΡΠΊΠ»ΡΡΠΈΡΡ CSS ΠΈΠ· Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Autoptimize ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΡΠ°ΠΉΠ»Ρ CSS ΠΈΠ· Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΡΠ½ΠΊΡΠΈΡ Autoptimize Π½Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ»Π° ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π²Π°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² CSS, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΡ Π² ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ.ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ JavaScript, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² CSS, Π° ΡΠΎΠ»ΡΠΊΠΎ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- WP-ΠΊΠΎΠ½ΡΠ΅Π½Ρ / ΠΊΠ΅Ρ /
- WP-ΠΊΠΎΠ½ΡΠ΅Π½Ρ / Π·Π°Π³ΡΡΠ·ΠΊΠΈ /
- Π°Π΄ΠΌΠΈΠ½-bar.min.css
- dashicons.min.css
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ HTML
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ HTMLAutoptimize ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π²Π°ΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡ Π·Π° ΡΡΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ².
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ HTML Π² Autoptimize.
ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ HTML-ΠΊΠΎΠ΄
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ Β«ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ HTMLΒ», ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π·Π° ΡΡΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² Π² HTML.Π₯ΠΎΡΡ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΠ°ΠΉΡΠΎΠ², ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΠ±ΠΎΠΈ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΉΡΠ°Ρ . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ HTML-ΠΊΠΎΠ΄Π°, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ΡΡ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ Π±ΡΠ»Π»Π΅ΡΠ΅Π½Ρ
ΠΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΈ Π½Π°Ρ ΡΡΠ°ΡΠΈΠΊ Π½Π° 1187% Ρ ΠΏΠΎΠΌΠΎΡΡΡ WordPress.
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ 20 000+ Π΄ΡΡΠ³ΠΈΠΌ, ΠΊΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π°ΡΡ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡΠ»ΠΊΡ Ρ ΠΈΠ½ΡΠ°ΠΉΠ΄Π΅ΡΡΠΊΠΈΠΌΠΈ ΡΠΎΠ²Π΅ΡΠ°ΠΌΠΈ ΠΏΠΎ WordPress!
ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ΡΡ ΡΠ΅ΠΉΡΠ°ΡΠ‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ HTML
ΠΠΊΠ»ΡΡΠΈΡΠ΅ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ HTML Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡ.
ΠΠΏΡΠΈΠΈ CDN
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ CDN, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ KinstaCDN, Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ URL-Π°Π΄ΡΠ΅Ρ CDN Π² Autoptimize. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²ΠΈΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ CDN, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Cloudflare, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ CDN Autoptimize.
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ CDN Π² Autoptimize.
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΡΡΠ΅
Β«ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ΅ΡΠ΅Β»Autoptimize ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²Π°ΠΆΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΊΠ΅ΡΠ΅ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ².ΠΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Β«ΠΠ΅ΡΒ» ΡΡΠ΄ΠΎΠΌ Ρ Β«ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ?Β», ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ Ρ ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ°ΠΏΠΊΠΈ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠ΅ΡΠ°.
Π Π°Π·Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
Autoptimize ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² CSS ΠΈ JS Π½Π° Π²Π°Ρ ΡΠ°ΠΉΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅.
Π Π°Π·Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² Autoptimize.
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ / CSS ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ.ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΆΠ°ΡΠΈΡ ΠΈ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
Π‘ΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ CSS ΠΈ JS
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ CSS ΠΈ JS Π±ΡΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ CSS ΠΈ JS, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΠΎΠΏΡΠΈΡ.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ² / Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ²
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΡΡΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ² ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ².ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ°ΠΊ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Autoptimize
Autoptimize ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ShortPixel Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Autoptimize ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΠΈ Π²Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ WEBP.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Kinsta ΠΌΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Autoptimize. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΎΡ ShortPixel ΠΈΠ»ΠΈ Imagify.Π‘ ΠΏΠΎΠ»Π½ΡΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π³Π°
, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ WEBP Π½Π° Kinsta.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
Autoptimize ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ³Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°, Autoptimize ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π»ΠΎΠ³ΠΎΡΠΈΠΏΡ, Π·Π½Π°ΡΠΊΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ ΠΈ Π΄ΡΡΠ³ΠΈΡ Π²Π°ΠΆΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π»Π΅Π½ΠΈΠ²ΠΎ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠ΅ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π² WordPress.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² Autoptimize
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² Autoptimize.
Google Π¨ΡΠΈΡΡΡ
Autoptimize ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΈΡΡΠΎΠ² Google.ΠΡΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π°Ρ ΡΠ°ΠΉΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΈΡΡΡ Google.
- ΠΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ.
- Π£Π΄Π°Π»ΠΈΡΡ ΡΡΠΈΡΡΡ Google.
- Π‘ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ²ΡΠ·Π°ΡΡ Π² Π³ΠΎΠ»ΠΎΠ²Π΅.
- ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π² Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅.
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΠΉΡΠ΅ ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΠΉΡΠ΅ ΡΡΠΈΡΡΡ Ρ webfont.js.
ΠΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡΒ», ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π΅ Π΄Π°Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π² ΡΠΊΠΎΡΠΎΡΡΠΈ.
ΠΡΠ»ΠΈ ΡΡΠΈΡΡΡ Google Fonts Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°, ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° ΡΡΠΈΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΠΈΡΡΡ Google Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅, ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°.
Π£Π΄Π°Π»ΠΈΡΡ ΡΠΌΠ°ΠΉΠ»Ρ
ΠΡΠ° ΠΎΠΏΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΄Π°Π»ΡΠ΅Ρ CSS ΠΈ JavaScript, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠ°ΠΌΠΈ WordPress. ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎ ΡΡΠ΅ΠΊΠ°ΠΌΠΈ ΡΡΠΈΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΌΠΎΠ΄Π·ΠΈ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ WordPress.
Π£Π΄Π°Π»ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΠΈΠ· ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ²
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,? Ver =) ΠΈΠ· ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΠΎΠΏΡΠΈΡ. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Π·Π°ΠΏΡΠΎΡΠ° Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠ»ΡΡΡΠΈΡΡ ΠΎΡΠ΅Π½ΠΊΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° Π² GTmetrix, Google Pagespeed ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΠΆΠ±Π°Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌ
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° preconnect ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΡΠ΅ΠΌΡ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ DNS-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ SSL-ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ HTTP-Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ Π΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Ρ https://site.kinsta.cdn.com/logo.png
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Autoptimize Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ preconnect Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ DNS ΠΈ SSL Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ
ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ HTTP-Π·Π°ΠΏΡΠΎΡΠ° Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅
Π²Π°ΡΠ΅Π³ΠΎ HTML.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π²Π°ΠΆΠ½ΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π΅ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌ.
-
https://cdn.brianli.com
-
https://www.google-analytics.com
-
https://www.googletagmanager.com
ΠΡΠΈ ΡΡΠΈ Π΄ΠΎΠΌΠ΅Π½Π° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Autoptimize.
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠΈ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Autoptimize, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²ΡPreload ΠΏΡΠ΅Π΄ΠΏΠΈΡΡΠ²Π°ΡΡ Π²Π°ΡΠ΅ΠΌΡ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ΅ΡΡΡΡ. ΠΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΏΠΎΠ»Π΅Π·Π½Π° Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠΈΡΡΠΎΠ², Π·Π°Π³ΡΡΠΆΠ°Ρ ΠΈΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΠΎΡΠ΅Π½Ρ Π² CSS ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΎΠΊΠΎΠ½ΡΡΠ»ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π°ΠΊΡΠΈΠ²Ρ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π½Π° Π²Π°Ρ ΡΠ°ΠΉΡ WordPress.ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅ΡΡΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°.
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ JavaScript
Π€ΡΠ½ΠΊΡΠΈΡ Β«Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ JavaScriptΒ» Π² Autoptimize ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ JavaScript Π΄Π»Ρ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π° async
HTML. Π₯ΠΎΡΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² JS ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ, ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΉΡΠ°.
Π‘Π²ΠΎΠ΄ΠΊΠ°
ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΠ»Π°Π³ΠΈΠ½ Autoptimize β Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ WordPress, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΠΉΡΠ°.
ΠΠ±Π»Π°Π΄Π°Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ HTML ΠΈ CSS, ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ CDN ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ preconnect ΠΈ preload, Autoptimize ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° WordPress.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ WordPress ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ°ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ WordPress.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΡΠ° ΡΡΠ°ΡΡΡ, ΡΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ Ρ ΠΎΡΡΠΈΠ½Π³ΠΎΠ²Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Kinsta WordPress.Π£ΡΠΊΠΎΡΡΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΊΡΡΠ³Π»ΠΎΡΡΡΠΎΡΠ½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΡ Π½Π°ΡΠ΅ΠΉ ΠΎΠΏΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ WordPress. ΠΠ°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π½Π° Π±Π°Π·Π΅ Google Cloud ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ Π½Π°ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ ΡΠ°Π·Π½ΠΈΡΡ Π² Kinsta! ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠΈΠΌΠΈ ΡΠ°ΡΠΈΡΠ°ΠΌΠΈ
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ: ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ | Next.js
ΠΡΠΈΠΌΠ΅ΡΡΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 10.0.0 , Next.js ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Next.js, next / image
, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° HTML
, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΡΠΌΠ°ΡΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ WebP, Π΅ΡΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΎ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Next.js Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π±ΡΠ΄ΡΡΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌ ΡΡΠΈ ΡΠΎΡΠΌΠ°ΡΡ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π»ΡΠ±ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΎ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΎΠΌ ΠΊΠ°ΠΊ CMS, Π΅Π³ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠΌΠ΅ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ Next.js ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΡΠΎΠ² ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π»ΠΈ 10 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ 10 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π»Π΅Π½ΠΈΠ²ΠΎ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅ ΡΠ½ΠΈΠΆΠ°Π΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΈΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π² ΠΎΠΊΠ½Π΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΊΡΠΌΡΠ»ΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π° ΠΌΠ°ΠΊΠ΅ΡΠ°, ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠ΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Google ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π½ΠΆΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΠΎΠΈΡΠΊΠ΅.
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ next / image
:
ΠΈΠΌΠΏΠΎΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ· 'next / image'
function Home () {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ (
<>
ΠΠΎΡ Π΄ΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°
<ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
src = "/ me.png"
alt = "ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΡΠ°"
ΡΠΈΡΠΈΠ½Π° = {500}
Π²ΡΡΠΎΡΠ° = {500}
/>
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π½Π° ΠΌΠΎΡ Π΄ΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ!
)
}
ΡΠΊΡΠΏΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄ΠΎΠΌΠΎΠΉ
ΠΡΠΎΡΠΌΠΎΡΡ Π²ΡΠ΅Ρ
ΡΠ²ΠΎΠΉΡΡΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° next / image
.
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° next / image
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· next.config.js
.
ΠΠΎΠΌΠ΅Π½Ρ
Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΡΡ
Π½Π° Π²Π½Π΅ΡΠ½Π΅ΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ URL-Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ src
ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅, ΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ URL-Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ. ΠΠΎΠ³Π΄Π° Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ
Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ.
module.exports = {
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ: {
Π΄ΠΎΠΌΠ΅Π½Ρ: ['example.com'],
},
}
ΠΠΎΠ³ΡΡΠ·ΡΠΈΠΊ
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π² Next.js ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΏΡΡΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ URL-Π°Π΄ΡΠ΅ΡΠ° Π΄Π»Ρ Image src
ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ URL-Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°.
module.exports = {
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ: {
Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ: 'imgix',
ΠΏΡΡΡ: 'https: // example.com / myaccount / ',
},
}
ΠΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ:
- Vercel: ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ Π½Π° Vercel, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. Π£Π·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅
- Imgix:
Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ: imgix
- Cloudinary:
Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ: cloudinary
- Akamai:
ΠΏΠΎΠ³ΡΡΠ·ΡΠΈΠΊ: 'akamai'
- ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ
next dev
,next start
ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ
prop Ρ next / image
.
ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
next / image
Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈnext export
. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°.
ΠΠΈΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ»Ρ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠ² ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅
. ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΡΠ΅ΡΠ΅Ρ ΡΡΠΎΠΊ Π΅Π³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.ΠΠΎΠ³Π΄Π° Π΄Π΅Π»Π°Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ, Π½ΠΎ ΠΏΡΠΎΡΡΠΎΡΠ΅Π½Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ, ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
Π‘ΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΠΈΠ»ΠΈ, ΡΠΊΠΎΡΠ΅Π΅, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π²ΠΎΠ·ΡΠ°ΡΡ) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Cache-Control
Π²ΡΡΠ΅ΡΡΠΎΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΡΠ»ΠΈ s-maxage
Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² Cache-Control
, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ s-maxage
Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ max-age
. ΠΡΠ»ΠΈ max-age
Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ 60 ΡΠ΅ΠΊΡΠ½Π΄.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ deviceSizes
ΠΈ imageSizes
, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π²Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π»ΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Next.js Π² Π±ΡΠ΄ΡΡΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΡ .
Π Π°Π·ΠΌΠ΅ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ ΡΠΈΡΠΈΠ½Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ
ΡΠΎΡΠ΅ΠΊ ΡΠΈΡΠΈΠ½Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° deviceSizes
.ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠΈΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ next / image
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ layout = "responsive"
ΠΈΠ»ΠΈ layout = "fill"
, ΡΡΠΎΠ±Ρ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΠΏΠΎΡΠ΅ΡΠ°ΡΡΠ΅ΠΌ Π²Π°Ρ Π²Π΅Π±-ΡΠ°ΠΉΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π»ΠΎΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π½ΠΈΠΆΠ΅.
module.exports = {
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ: {
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
},
}
Π Π°Π·ΠΌΠ΅ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΈΡΠΈΠ½Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° imageSizes
.ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ (ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅) ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ deviceSizes
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ°ΡΡΠΈΠ²Ρ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ. ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠΈΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ next / image
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ layout = "fixed"
ΠΈΠ»ΠΈ layout = "intrinsic"
.
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π½ΠΈΠΆΠ΅.
module.exports = {
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ: {
imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
},
}
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ:
ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Β· Bootstrap v5.0
Lean Sass ΠΈΠΌΠΏΠΎΡΡ
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Sass Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ Bootstrap, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠΎΠ»ΡΠΊΠΎ @import
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
Π²Π°ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ°ΡΠΈ ΡΠ°ΠΌΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° Layout & Components
Π½Π°ΡΠ΅Π³ΠΎ bootstrap.scss
.
// ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
@import "ΡΡΠ½ΠΊΡΠΈΠΈ";
@import "ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅";
@import "ΠΌΠΈΠΊΡΠΈΠ½Ρ";
@import "ΠΊΠΎΠΌΠΌΡΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ";
// ΠΠ°ΠΊΠ΅Ρ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
@import "ΠΊΠΎΡΠ΅Π½Ρ";
@import "ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ°";
@import "ΡΠΈΠΏ";
@import "ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ";
@import "ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ";
@import "ΡΠ΅ΡΠΊΠ°";
@import "ΡΠ°Π±Π»ΠΈΡΡ";
@import "ΡΠΎΡΠΌΡ";
@import "ΠΊΠ½ΠΎΠΏΠΊΠΈ";
@import "ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Ρ";
@import "Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ";
@import "Π³ΡΡΠΏΠΏΠ° ΠΊΠ½ΠΎΠΏΠΎΠΊ";
@import "nav";
@import "Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ";
@import "ΠΊΠ°ΡΡΠ°";
@import "Π°ΠΊΠΊΠΎΡΠ΄Π΅ΠΎΠ½";
@import "Ρ
Π»Π΅Π±Π½ΡΠ΅ ΠΊΡΠΎΡΠΊΠΈ";
@import "ΡΠ°Π·Π±ΠΈΠ²ΠΊΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ";
@import "Π·Π½Π°ΡΠΎΠΊ";
@import "ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅";
@import "ΠΏΡΠΎΠ³ΡΠ΅ΡΡ";
@import "ΡΠΏΠΈΡΠΎΠΊ-Π³ΡΡΠΏΠΏΠ°";
@import "Π·Π°ΠΊΡΡΡΡ";
@import "ΡΠΎΡΡΡ";
@import "ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΉ";
@import "ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°";
@import "Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ";
@import "ΠΊΠ°ΡΡΡΠ΅Π»Ρ";
@import "Π±Π»Π΅ΡΠ½Ρ";
@import "offcanvas";
// ΠΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΈ
@import "ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΈ";
// Π£ΡΠΈΠ»ΠΈΡΡ
@import "ΡΡΠΈΠ»ΠΈΡΡ / api";
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠ°ΡΡΡΠ΅Π»Ρ, ΡΠ΄Π°Π»ΠΈΡΠ΅ ΡΡΠΎΡ ΠΈΠΌΠΏΠΎΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° Π² ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ CSS. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠΌΠΏΠΎΡΡΠΎΠΌ Sass Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΡ ΠΏΡΠΎΠΏΡΡΠΊ ΡΠ°ΠΉΠ»Π°.
Lean JavaScript
JavaScript Bootstrap Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Π½Π°ΡΠΈΡ
ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
dist ( bootstrap.js
ΠΈ bootstrap.min.js
) ΠΈ Π΄Π°ΠΆΠ΅ Π½Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ (Popper) Ρ Π½Π°ΡΠΈΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ( bootstrap.bundle.js
ΠΈ bootstrap. .bundle.min.js
). ΠΠΎΠΊΠ° Π²Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Sass, Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ JavaScript.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ JavaScript, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Webpack ΠΈΠ»ΠΈ Rollup, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡ JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π½Π°Ρ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΉ JavaScript:
// ΠΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ
// ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ 'bootstrap / js / dist / alert';
// ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ 'bootstrap / js / dist / button';
// ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ 'bootstrap / js / dist / carousel';
// ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ 'bootstrap / js / dist / collapse';
// ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ 'bootstrap / js / dist / dropdown';
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ 'bootstrap / js / dist / modal';
// ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ 'bootstrap / js / dist / popover';
// ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ 'bootstrap / js / dist / scrollspy';
// ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ 'bootstrap / js / dist / tab';
// ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ 'bootstrap / js / dist / toast';
// ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ 'bootstrap / js / dist / tooltip';
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠ°ΡΡΡΠ΅Π»ΠΈ ΠΈ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ.ΠΡΠ»ΠΈ Π²Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ΡΡ ΡΠΏΠΈΡΠΊΠΈ, Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΈΠ»ΠΈ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ ΠΎΠΊΠ½Π°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Popper Π² ΡΠ°ΠΉΠ»Π΅ package.json
.
ΠΠΊΡΠΏΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π€Π°ΠΉΠ»Ρ Π² bootstrap / js / dist
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΊΡΠΏΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ , ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ
, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΈΠΌΠΏΠΎΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈΠ· bootstrap / js / dist / modal
const modal = Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΉ (document.getElementById ('myModal'))
ΠΠ²ΡΠΎΠΏΡΠ΅ΡΠΈΠΊΡΠ°ΡΠΎΡ .browserslistrc
Bootstrap Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Autoprefixer Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠ² Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ CSS.ΠΡΠ΅ΡΠΈΠΊΡΡ ΠΏΡΠΎΠ΄ΠΈΠΊΡΠΎΠ²Π°Π½Ρ Π½Π°ΡΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ .browserslistrc
, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΡΠ½Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Bootstrap. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Sass Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π°Π»ΠΈΡ ΡΠ°ΡΡΡ CSS ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ CSS, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°, ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΠΈ.
ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ CSS
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠΌΠΎΡΡ Ρ ΡΡΠΈΠΌ ΡΠ°Π·Π΄Π΅Π»ΠΎΠΌ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΡΡΡΠΈΡ PR. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
Π₯ΠΎΡΡ Ρ Π½Π°Ρ Π½Π΅Ρ Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ PurgeCSS Ρ Bootstrap, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΈ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ.ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ²:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ CSS Tricks ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ CSS ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PurgeCSS ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.
Minify ΠΈ gzip
ΠΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΆΠΈΠΌΠ°ΠΉΡΠ΅ Π²Π΅ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ ΡΠ²ΠΎΠΈΠΌ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΡΠΌ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Bootstrap, ΠΏΠΎΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π²Π΅ΡΡΠΈΠΉ (ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΡΡ
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ .min.css
ΠΈ .min.js
). ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ Bootstrap ΠΈΠ· ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄Π»Ρ HTML, CSS ΠΈ JS.
ΠΠ΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ
Π₯ΠΎΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΆΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ Π²Π°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ Π²Π°Ρ ΡΠ°ΠΉΡ Π±ΡΠ» Ρ ΠΎΡΠΎΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΡΡΡΠΌ.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ Lighthouse Π² Google Chrome, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π½Π°ΡΠΊΠ½ΡΠ»ΠΈΡΡ Π½Π° FCP. ΠΠ΅ΡΡΠΈΠΊΠ° First Contentful Paint ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π°ΡΠ°Π»Π° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π΄ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π»ΡΠ±ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ»ΡΡΡΠΈΡΡ FCP, ΠΎΡΠ»ΠΎΠΆΠΈΠ² Π½Π΅ΠΊΡΠΈΡΠΈΡΠ½ΡΠΉ JavaScript ΠΈΠ»ΠΈ CSS.Π§ΡΠΎ ΡΡΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ? ΠΡΠΎΡΡΠΎ JavaScript ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ async
ΠΈΠ»ΠΈ defer
.
ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ ΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΠ»ΠΈ ΡΡΠΈΠ»Π΅ΠΉ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠ΅, ΠΎΠ± ΡΡΠΎΠΌ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΡΡΠ°ΡΠ΅ΠΉ:
ΠΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HTTPS
ΠΠ°Ρ Π²Π΅Π±-ΡΠ°ΠΉΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· HTTPS-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ΅Π΄Π΅.HTTPS ΡΠ»ΡΡΡΠ°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π²ΡΠ΅Ρ ΡΠ°ΠΉΡΠΎΠ², ΠΈ Π½Π΅Ρ ΡΠ°ΠΊΠΎΠΉ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ Π½Π΅ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²Π΅Π±-ΡΡΠ°ΡΠΈΠΊ. Π¨Π°Π³ΠΈ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π· HTTPS ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° Π²Π΅Π±-Ρ ΠΎΡΡΠΈΠ½Π³Π° ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΡ ΠΎΠ΄ΡΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ².
Π‘Π°ΠΉΡΡ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠΎ HTTPS, ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌ ΡΡΠΈΠ»Π΅ΠΉ, ΡΠΊΡΠΈΠΏΡΠ°ΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π· HTTPS-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠΌ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΉΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π·Π»ΠΎΠΌΠ°Π½ ΠΏΡΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ Bootstrap ΠΈΠ· CDN ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΠ΅ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· HTTPS-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
.