ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΈΡΡΠ½ΡΡ
ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ
ΡΠΎΡΠΌ, ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΊΠ°ΠΊ Π² ΡΠΎΠ½ΠΊΠΎΠΌ (ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌ) ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ ΠΏΠΎΠ΄ Windows, Linux, MacOS X, ΡΠ°ΠΊ ΠΈ ΠΊΠ°ΠΊ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ΄ 5 Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² β Chrome, Internet Explorer, Firefox, Safari, Edge, ΠΈ Π²ΡΠ΅ ΡΡΠΎ β Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ β Π²Π½Π΅ΡΠ½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ ΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ.
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ 10 ΠΎΡΠ»ΠΈΡΠΈΠΉ (ΠΏΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ 2 ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ):
ΠΠΊΠ½ΠΎ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π° Linux:
Π’ΠΎ ΠΆΠ΅ ΠΎΠΊΠ½ΠΎ Π² Π²Π΅Π± ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ (Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Chrome):
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ? ΠΠΎΠ²ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΠΎΡΠ½ΠΎ, ΡΠ°ΠΊΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ Π²ΡΠ΅ΠΌΡ. Π£ΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ° ΡΠ΅ΡΠ΅Π· ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½Π°ΡΠ°Π»Π΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ΅Π· ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΡ, ΠΊΡΡΠ°ΡΠΈ, Π½Π° ΡΡΠΎΠΌ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ; Π΄ΡΡΠ³ΠΈΠ΅, Π½Π°ΠΏΡΠΎΡΠΈΠ², ΠΎΡΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΎΡ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ»ΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°). ΠΡ ΠΆΠ΅ ΡΠ΅ΡΠΈΠ»ΠΈ Π΄Π°ΡΡ Π½Π°ΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ΅Π· ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ Π΄Π»Ρ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π±ΡΠ»ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΌΠ΅Π½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΆΠ΅ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° β ΠΈ Π²ΠΎΠ²ΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π°ΡΠΈΠ½Π°Π²ΡΠΈΠΉΡΡ Ρ Π½ΡΠ»Ρ.
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΡΠ°ΠΊ, ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ: Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ ΡΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
- ΠΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ 1Π‘
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² 1Π‘ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅, Π½ΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎ, Π±Π΅Π· ΠΏΠΎΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²; ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ ΡΡΠ΅Ρ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΠΈΠΏΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° β ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° (ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅, ΡΠΈΡΡΠΎΠ²ΡΠ΅, Π΄Π°ΡΠ°/Π²ΡΠ΅ΠΌΡ), ΡΠΏΠΈΡΠΊΠΈ, ΡΠ°Π±Π»ΠΈΡΡ, Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ Ρ.Π΄.
ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ 1Π‘ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π² ΡΠ΅Π±Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΡΠ°Π±ΠΎΡΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ (ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Ρ.ΠΏ.), ΠΏΠ΅ΡΠ°ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
Π ΡΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ (ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅ΡΠ΅Π· Π²Π΅Π±), ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡΠΎΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ 1Π‘. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ°Π·Π½Π°Ρ β ΡΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π‘++, Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ β Π½Π° JavaScript.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠΈΠΈ
ΠΡΠΎΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΡΠ°ΡΡΠΎΠ²Π°Π» Π² 2006 Π³ΠΎΠ΄Ρ, Π² Π½Π΅ΠΌ (Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ) ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π»Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ· 5 ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ. ΠΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°ΠΏΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°Π»ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ (ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ ΠΈ Ρ.Π΄.); ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΡΡΠΎ Π΄Π΅Π»Π°Π»ΠΈ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π² ΡΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅. Π’.Π΅. ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠΈΡΠ°Π»ΠΈ Π½Π° JavaScript ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΈΠΌΠΈ Π½Π° C++.
Π‘ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΎΡΠ²Π΅ΡΠ³Π»ΠΈ ΠΈΠ΄Π΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ (Ρ ΠΎΡΡ Π±Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠΉ) ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΈ C++ ΠΊΠΎΠ΄Π° ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² JavaScript Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²Π²ΠΈΠ΄Ρ ΡΠΈΠ»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΡΡΠΈΡ Π΄Π²ΡΡ ΡΠ·ΡΠΊΠΎΠ²; Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΈΡΠ°Π»ΡΡ Π½Π° JavaScript Ρ ΡΠΈΡΡΠΎΠ³ΠΎ Π»ΠΈΡΡΠ°.
Π ΠΏΠ΅ΡΠ²ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π» ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ 1Π‘ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² JavaScript. Π’ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ ΠΈΠ½Π°ΡΠ΅ β ΠΊΠΎΠ΄ Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ 1Π‘ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΡΠΎΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅. ΠΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΠ°Π» Π΄Π΅Π»Π°ΡΡ ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ β Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΡΠΎ Π΄Π°Π»ΠΎ Π²ΡΠΈΠ³ΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π²ΠΎ-Π²ΡΠΎΡΡΡ β ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²ΡΡΠ»Π° Π² 2009 Π³ΠΎΠ΄Ρ. ΠΠ΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π» 2 Π±ΡΠ°ΡΠ·Π΅ΡΠ° β Internet Explorer ΠΈ Firefox. Π ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΡ ΠΏΠ»Π°Π½Π°Ρ Π±ΡΠ»Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Opera, Π½ΠΎ ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΡΡ Π½Π° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π·Π°ΠΊΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Opera (Π½Π΅ ΡΠ΄Π°Π²Π°Π»ΠΎΡΡ ΡΠΎ 100%-Π½ΠΎΠΉ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ, ΠΈ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ 1Π‘) ΠΎΡ ΡΡΠΈΡ ΠΏΠ»Π°Π½ΠΎΠ² ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ.
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡΠ΅Π³ΠΎ Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ Π΅ΡΡΡ 4 ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° JavaScript:
- WebTools β ΠΎΠ±ΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ (ΡΡΠ΄Π° ΠΆΠ΅ ΠΌΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ
Google Closure Library ). - ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉΠΠΎΠΊΡΠΌΠ΅Π½Ρ (ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° JavaScript ΠΈ Π² ΡΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅, ΠΈ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅) - ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ (ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° JavaScript ΠΈ Π² ΡΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅, ΠΈ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅) - ΠΠ΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΡΡΡΠΊΡΡΡΡ Java-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² (ΠΈΠ»ΠΈ .NET ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² β ΠΊΠΎΠΌΡ ΡΡΠΎ Π±Π»ΠΈΠΆΠ΅); Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΡ, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡ Π»Π΅ΠΆΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅. ΠΠ½ΡΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ Π»Π΅ΠΆΠ°Ρ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΊΠ»Π°ΡΡΡ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΠ°. Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΎΠΊΠΎΠ»ΠΎ 1000 ΡΠ°ΠΉΠ»ΠΎΠ².
Π‘ΡΡΡΠΊΡΡΡΠ½ΠΎ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎ-ΠΊΡΡΠΏΠ½ΠΎΠΌΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ:
- Π£ΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΌΠ΅Π½Ρ, ΠΏΠ°Π½Π΅Π»ΠΈ)
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΠΎΡΠΌ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, ΠΎΠΊΠΎΠ»ΠΎ 30 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° β ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅, ΡΠΈΡΡΠΎΠ²ΡΠ΅, Π΄Π°ΡΠ°/Π²ΡΠ΅ΠΌΡ ΠΈ ΠΏΡ., ΡΠ°Π±Π»ΠΈΡΡ, ΡΠΏΠΈΡΠΊΠΈ, Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ Ρ.Π΄.)
- ΠΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ, Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ (Π²ΡΠ΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ 400 ΡΠΈΠΏΠΎΠ²: ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ , ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΈ ΠΏΡ.)
- ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° 1Π‘
- Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π² JavaScript)
- Π Π°Π±ΠΎΡΠ° Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠ΅ΠΉ
- Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
- Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π² ΡΠΎΠ½ΠΊΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΅Π³ΠΎ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° JavaScript β Π΄Π΅Π»ΠΎ Π½Π΅ΠΏΡΠΎΡΡΠΎΠ΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ 1Π‘ β ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ Π±ΠΎΠ»ΡΡΠΈΡ client-side ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° JavaScript β ΠΎΠΊΠΎΠ»ΠΎ 450.000 ΡΡΡΠΎΠΊ. ΠΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π² ΠΊΠΎΠ΄Π΅ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΊΠΈΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ.
ΠΠ»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΡ Π²Π½Π°ΡΠ°Π»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡ, Π° Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 8.3.6 (ΠΎΠΊΡΡΠ±ΡΡ 2014) ΡΡΠ°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
- Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡ β 1556 ΠΊΠ±
- Google Closure Compiler β 1073 ΠΊΠ±
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Google Closure Compiler ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ²ΡΡΠΈΡΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π° 30% ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π½Π°ΡΠΈΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡΠΎΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π° 15-25% (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°) ΡΠ½ΠΈΠ·ΠΈΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
Google Closure Compiler ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΡΡΠΎΠΊΠ°Ρ. Closure Compiler Π΄Π΅Π»Π°Π΅Ρ Π΄Π»Ρ Π½Π°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΈΡ Π²Π΅ΡΠ΅ΠΉ:
- Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ² Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ΄ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΠΌΠΈ JSDoc). Π ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, ΠΎΡΠ΅Π½Ρ Π±Π»ΠΈΠ·ΠΊΠ°Ρ ΠΏΠΎ ΡΡΠΎΠ²Π½Ρ ΠΊ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π² Π‘++. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- Π£ΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ
- Π ΡΠ΄ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:
- inline-ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π² JavaScript β Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΡΠΎΠ³Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΈ inline-ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΊΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄Π°.
- ΠΠΎΠ΄ΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π² Π½Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ WebStorm.
ΠΠ»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ
ΠΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΠ΅ΡΠ°Π»ΠΈ/ΡΠ΅ΡΠ°Π΅ΠΌ
Π Ρ ΠΎΠ΄Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΡΡΠ΄ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΠ΅ΡΠ°ΡΡ.
ΠΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΊΠ½Π°ΠΌΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΡΡΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΠ΄, Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΠΊΠΎΠ΄Ρ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΠΌΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΎΡ ΡΠ΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ. ΠΠ½Π΅ΡΠ½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ Π½Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ:
- ΠΠΎΠ΄, ΠΏΡΠΈΡ ΠΎΠ΄ΡΡΠΈΠΉ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² Π²ΠΈΠ΄Π΅ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ
- ΠΠΎΠ΄ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ³ @expose:
/**
* @constructor
* @extends {Base.SrvObject}
*/
Srv.Core.GenericException = function ()
{
/**
* @type {string}
* @expose
*/
this.descr;
/**
* @type {Srv.Core.GenericException}
* @expose
*/
this.inner;
/**
* @type {string}
* @expose
*/
this.clsid;
/**
* @type {boolean}
* @expose
*/
this.encoded;
}
Π ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ).
/**
* ΠΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π° DropDownWindow
*
* @interface
* @struct
*/
WebUI.IDropDownWindowExp = function(){}
/**
* ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 1 Π²ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ»ΠΈ Π½Π°Π·Π°Π΄
*
* @param {boolean} isForward
* @param {boolean} checkOnly
* @return {boolean}
* @expose
*/
WebUI.IDropDownWindowExp.prototype.moveMarker = function (isForward, checkOnly){}
/**
* ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ°Π»ΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ
*
* @param {boolean} isFirst
* @param {boolean} checkOnly
* @return {boolean}
* @expose
*/
WebUI.IDropDownWindowExp.prototype.moveMarkerTo = function (isFirst, checkOnly){}
/**
* @return {boolean}
* @expose
*/
WebUI.IDropDownWindowExp.prototype.selectValue = function (){}
We used Virtual DOM before it became mainstream)
ΠΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ Π΄Π΅Π»ΠΎ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΠ΅Π± UI, ΠΌΡ Π±ΡΡΡΡΠΎ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ DOM ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π·Ρ Π±ΡΠ» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π°Π½Π°Π»ΠΎΠ³ Virtual DOM Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ UI. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ DOM Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ DOM-Π΄Π΅ΡΠ΅Π²Ρ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
Π§ΡΠΎΠ±Ρ Π½Π°Ρ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ°Π» Π±ΡΡΡΡΠ΅Π΅, ΠΌΡ ΠΏΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΡ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ° (CSS ΠΈ Ρ.ΠΏ.). Π’Π°ΠΊ, ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ ΡΠΎΡΠΌΡ (ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ) ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²Π΅ΡΡΡΠΊΠΎΠΉ Π½Π° Π±Π°Π·Π΅ CSS.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° (Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Java ΠΈ C++), Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π±ΠΎΡ ΡΠ΅ΡΡΠΎΠ², ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΡ
Π½Π° Π±Π°Π·Π΅
ΠΠ°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ β ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΡΠ΅ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° ΠΏΠΎΡΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ°ΠΊ ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π·Π°ΠΏΡΡΡΠΈΠ²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Β«1Π‘Β», Π² ΡΠ°ΠΉΠ»-ΡΡΠ΅Π½Π°ΡΠΈΠΉ. Π ΡΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π°ΠΏΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΊΡΠ°Π½Π° β ΡΡΠ°Π»ΠΎΠ½ΠΎΠ². ΠΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡΡΡ Π±Π΅Π· ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠΈΡ. Π ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ° Ρ ΡΡΠ°Π»ΠΎΠ½Π½ΡΠΌ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΡΠ°Π³Π΅ ΡΠ΅ΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²ΡΠΈΠΌΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΠ°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ β ΠΎΡΠΈΠ±ΠΊΠ° ΡΡΠΎ ΠΈΠ»ΠΈ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠ°Π»ΠΎΠ½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° Π½ΠΎΠ²ΡΠ΅.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ Π·Π°ΠΌΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π΄ΠΎ 25 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄. Π ΡΡΠ΄Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΌΡ Π·Π°ΠΊΠΎΠ»ΡΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΡΠ°ΡΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌ Π²Π²ΠΎΠ΄ Π·Π°ΠΊΠ°Π·Π°) Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π΅Π³ΡΠ°Π΄Π°ΡΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΎΠ² Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π»ΠΎΠ³ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π°.
ΠΠ°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΠ°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈ Selenium Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠΊΡΠ°Π½ΠΎΠ² ΠΏΠΎΠΌΠ΅Π½ΡΠ»Π° ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β Selenium ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ, Π½ΠΎ Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π°ΠΌΠ΅ΡΠΈΡ, Ρ.ΠΊ. Π΄Π΅Π»Π°Π΅Ρ ΠΏΠΎΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ° Ρ ΡΡΠ°Π»ΠΎΠ½ΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π²Π²ΠΎΠ΄Π° Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈΠ»ΠΈ ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡ ΠΎΠ½ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ.
Π’Π΅ΡΡΡ Π½Π° ΠΎΠ±ΠΎΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ (Π½Π°ΡΠ΅ΠΌ ΠΈ Selenium) Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΈΠΏΠΎΠ²ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΈΠ· Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. Π’Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Β«1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅Β». Π ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² (ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΠ±ΠΎΡΠΊΠΎΠΉ) ΠΌΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΡΡΠ°Π½ΡΠ΅ΠΌ ΠΏΡΠΈΡΠΈΠ½Ρ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ. ΠΡΠΈΡΠ΅ΡΠΈΠΉ Ρ Π½Π°Ρ ΠΏΡΠΎΡΡΠΎΠΉ β Π½ΠΎΠ²Π°Ρ ΡΠ±ΠΎΡΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ.
ΠΠ»Ρ ΡΠ°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΎΠ² Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ; Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎ, ΡΡΠΎ Google Closure Compiler ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π½Π΅ ΡΠΌΠΎΠ³ ΡΠ΄Π΅Π»Π°ΡΡ inline-ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ). Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄.
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ²
Π ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅Ρ Π² JavaScript, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ²:
- Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
- Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠ΅ΠΉ
- ΡΠ°Π±ΠΎΡΠ° Ρ
Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ
ΠΠ°ΡΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ. ΠΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ β ΡΠΎ, ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ° (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° JavaScript ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Chrome ΠΈ Firefox), ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΡΡ β Π±ΠΈΠ½Π°ΡΠ½ΡΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΌ Π½ΡΠΆΠ½ΡΡ Π½Π°ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. ΠΠ°Π΄ΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ, ΡΡΠΎ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ 3 Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ β ΠΏΠΎΠ΄ Windows, Linux ΠΈ MacOS. ΠΠΈΠ½Π°ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ 1Π‘. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ Ρ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΎΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² Safari Π½Π°ΡΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ NPAPI, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² Internet Explorer β ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ActiveX.
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅
ΠΠ΄Π½Π° ΠΈΠ· Π³ΡΡΠΏΠΏ Π·Π°Π΄Π°Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° β ΡΡΠΎ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π²ΡΡ Π½ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π² ΡΠΎΠ½ΠΊΠΎΠΌ, ΠΈ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅.
ΠΡΡΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ β ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ, ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³, ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ β Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΡΠΎΡΠΎΠ½Ρ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°Π±ΠΎΡΡ. Π§Π°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π° Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Π½Π° ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΡΠΈΠ½Ρ
ΡΠΎΠ½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
(ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
) Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ, ΠΈ ΡΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΡΡΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π½Π° Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ (ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π° ΠΊΠΎΠ΄Π°). ΠΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ ΠΊ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π²ΡΠΏΡΡΠ΅Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎΠΉ ΠΈΡ
Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com