ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ html
HTML-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
HTA-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ HTML-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅. Π―, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Notepad2.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡΠΊΡΠΎΠ΅ΠΌ Π±Π»ΠΎΠΊΠ½ΠΎΡ, ΡΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ ΡΡΠ΄Π° ΡΡΡΡΠΊΡΡΡΡ HTML Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ ΠΊΠ°ΠΊ htm-ΡΠ°ΠΉΠ».
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎΡ ΡΠ΅Π³ ΡΠ°ΠΊΠΆΠ΅ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠΊΡΠΈΠΏΡΠΎΠ², ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² ΠΊΠΎΠ΄Π΅ HTA-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΠΎΠ³ΠΎ ΡΠ΅Π³Π° Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎSingleInstanceΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π² «True», ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ApplicationName Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π±ΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ApplicationName Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ. Π’ΠΎ Π΅ΡΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ApplicationName ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΠΏ Π±ΠΎΡΠ΄ΡΡΠ° ΠΎΠΊΠ½Π°. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Border Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠΎΠ»ΡΠΈΠ½Ρ Π±ΠΎΡΠ΄ΡΡΠ° ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠΊΠΎΠ½ HTA, Ρ ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ ΡΠ°ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡBorderΠ² «None», Π²Ρ ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΈΠΊΠΎΠ½ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ BorderStyle. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΈΠ»Ρ Π±ΠΎΡΠ΄ΡΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ BorderStyle ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΠΈΠ»Ρ Π΄Π»Ρ Π±ΠΎΡΠ΄ΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Border ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ Π±ΠΎΡΠ΄ΡΡ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Complex | ΠΡΠΈΠΏΠΎΠ΄Π½ΡΡΡΠΉ ΠΈ ΡΡΠΎΠΏΠ»Π΅Π½Π½ΡΠΉ Π±ΠΎΡΠ΄ΡΡ. |
| Normal | ΠΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ Π±ΠΎΡΠ΄ΡΡ. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
| Raised | ΠΡΠΈΠΏΠΎΠ΄Π½ΡΡΡΠΉ 3-D Π±ΠΎΡΠ΄ΡΡ. |
| Static | 3-D Π±ΠΎΡΠ΄ΡΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΠΊΠΎΠ½, Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΡ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. |
| Sunken | Π£ΡΠΎΠΏΠ»Π΅Π½Π½ΡΠΉ 3-D Π±ΠΎΡΠ΄ΡΡ. |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ Π² ΠΎΠΊΠ½Π΅ HTML ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎCaptionΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π² «Yes». ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°CaptionΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π‘Π²Π΅ΡΠ½ΡΡΡ», «Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ» ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΈΠΊΠΎΠ½ΠΊΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΡΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ½ΠΎΠΏΠΊΡ «ΠΠ°ΠΊΡΡΡΡ» Π½Π° ΡΠΎΡΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Window.Close. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Yes | ΠΠ°Π½Π΅Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
| No | ΠΠ°Π½Π΅Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ. |
Π‘ΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΡΡ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° HTA-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ HTA-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ HTTP ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ CommandLine ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΏΡΠ°Π²ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΌΡΡΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Yes | ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
| No | ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ. |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ 3-D Π³ΡΠ°Π½ΠΈΡΠ°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Yes | ΠΠ½ΡΡΡΠ΅Π½Π½ΡΡ 3-D Π³ΡΠ°Π½ΠΈΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
| No | ΠΠ½ΡΡΡΠ΅Π½Π½ΡΡ 3-D Π³ΡΠ°Π½ΠΈΡΠ° Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ. |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° «Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ» Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° HTML ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π‘Π²Π΅ΡΠ½ΡΡΡ» ΠΈ «Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ», ΠΎΠΊΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (Π°ΡΡΠΈΠ±ΡΡ Caption). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Yes | ΠΠ½ΠΎΠΏΠΊΠ° «Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ» ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
| No | ΠΠ½ΠΎΠΏΠΊΠ° «Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ» Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ. |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° «Π‘Π²Π΅ΡΠ½ΡΡΡ» Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° HTML ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π‘Π²Π΅ΡΠ½ΡΡΡ» ΠΈ «Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ», ΠΎΠΊΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (Π°ΡΡΠΈΠ±ΡΡ Caption). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Yes | ΠΠ½ΠΎΠΏΠΊΠ° «Π‘Π²Π΅ΡΠ½ΡΡΡ» ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
| No | ΠΠ½ΠΎΠΏΠΊΠ° «Π‘Π²Π΅ΡΠ½ΡΡΡ» Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ. |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠΊΠ½Π΅ Π±ΡΠ΄ΡΡ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| No | ΠΡΠ΄ΡΡ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ Π² Π½ΠΎΠ²ΡΡ ΠΎΠΊΠ½Π°Ρ . (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
| Yes | ΠΡΠ΄ΡΡ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅. |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π±ΡΠ΄ΡΡ Π»ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Yes | ΠΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
| No | ΠΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ. |
| Auto | ΠΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π½Π΅ ΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π² ΠΊΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Yes | ΠΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π΄Π²ΡΡ ΠΌΠ΅ΡΠ½ΡΠ΅. |
| No | ΠΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΡΡΡΡ ΠΌΠ΅ΡΠ½ΡΠ΅. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π±ΡΡΡ Π²ΡΠ±ΡΠ°Π½ΠΎ ΠΌΡΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ «No» Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ContextMenu Π·Π½Π°ΡΠ΅Π½ΠΈΡ «Yes» Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Yes | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ±ΡΠ°Π½ΠΎ. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
| No | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ±ΡΠ°Π½ΠΎ. |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ HTML ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ Windows. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Yes | ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
| No | ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ. |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° HTML ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Yes | ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. |
| No | ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π² HTML ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ HTA ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ Π² Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ HTA ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Windows, Π²ΠΊΠ»ΡΡΠ°Ρ «ΠΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ», «ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ», «Π Π°Π·ΠΌΠ΅Ρ», «Π‘Π²Π΅ΡΠ½ΡΡΡ», «Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ», ΠΈ «ΠΠ°ΠΊΡΡΡΡ». ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
| Yes | Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). |
| No | Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ HTML ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π° HTML ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Web ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ HTML 5
ΠΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ Π²ΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π½Π° ΡΠ°ΠΉΡΠ΅ IBM. ΠΠ²ΡΠΎΡ β Michael Galpin, Software architect, eBay
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΡΡΠ°Π»ΠΈ ΡΠ°ΡΡΡΡ HTML 5. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ,Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΠ΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π° Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ HTML, JavaScript, ΠΈ CSSβ ΡΡΠΎ ΡΠ΄ΡΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ°ΡΠ°Π»ΠΎ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌ ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ ΡΡΠΎ ΠΎΡ Π²Π°Ρ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ β Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΈ Π²Π΅ΡΡΠΈΠΈ Mozilla Firefox, Apple Safari, ΠΈ Google Chrome Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡΡΡ. ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠ°ΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Mozilla Firefox 3.6, Apple Safari 4.04, ΠΈ Google Chrome 5.0.322. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Android ΠΈ iPhone SDKs ΠΈΡΠΎΠΏΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² Π² ΠΈΡ ΡΠΌΡΠ»ΡΡΠΎΡΠ°Ρ .
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
ΠΡΠΈΠΌΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠ³ΠΎ back-end ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΎΠ³ΠΎ Π½Π° Java™. JDK 1.6.0_17 ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ Apache Tomcat 6.0.14. Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΊΠ°ΡΠ°ΡΡ ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ
ΠΡΡΡ ΡΡΠ°ΡΠ°Ρ ΡΡΡΠΊΠ° ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ΄Π΅Π»ΡΡΡ 20% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ 80% ΡΡΠ°ΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π» Π½Π° Π²ΡΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ . ΠΠΎΠ²ΠΎΡΠΈΡΡ ΡΡΠΎ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΠΊ ΠΎΡΠ»ΠΈΡΠΈΡΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² β Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π²Π΅ΡΠ½ΠΎ. Π‘ Π½ΠΎΠ²ΠΎΠΉ Π²ΠΎΠ»Π½ΠΎΠΉ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΠΉ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ΡΡΠ° Π³ΡΡΡΡΠ°Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ Π±ΡΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ ΠΈ Π»ΡΡΡΠΈΠΌΠΈ ΠΈΠ· Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² β ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΡΡΡΡ.
ΠΠΈΡΡΠΈΠ½Π³ 1. Π‘ΠΊΡΠΈΠΏΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
ΠΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΡΠ»ΠΈΠ»ΠΎΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ HTML 5. ΠΡΠ° ΡΡΠ°ΡΡΡ ΡΠΎΠΊΡΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ· Π½ΠΈΡ . Π‘ΠΊΡΠΈΠΏΡ Π² ΠΠΈΡΡΠΈΠ½Π³Π΅ 1 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ΅ΡΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
Π‘ΠΊΡΠΈΠΏΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ user agent ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΡΠΎ (ΠΎΠ±ΡΡΠ½ΠΎ) ΡΡΡΠΎΠΊΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ², Ρ
ΠΎΡΡ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°. ΠΡΠΎΡΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΡ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ·Π΅ΡΠ°Π³Π΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ Ρ
ΠΎΡΠΎΡΠΎ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ β Π½Π°ΡΠ°Π»ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ. Π‘Π½Π°ΡΠ°Π»ΠΎ, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Web workers ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠΈΡΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ Worker Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ (ΠΎΠΊΠ½ΠΎ|window). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ΄Π½Ρ ΠΈΠ΄ΠΈΠΎΠΌΡ ΠΈΠ· JavaScript: double negation (Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΎΡΡΠΈΡΠ°Π½ΠΈΠ΅). ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Worker Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ window.Worker Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Β«Π»ΠΎΠΆΡΒ» Π² JavaScript. ΠΠ²ΠΎΠ΄ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΡΠΈΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡ Π΅Π³ΠΎ Π² true, Π² Π²Π΄ΠΎΠΉΠ½ΠΎΠ΅ ΠΎΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡ Π² false. ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ DOM ΡΡΡΡΠΊΡΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² ΠΠΈΡΡΠΈΠ½Π³Π΅ 2 Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠ΅ΡΡΠ°.
ΠΠΈΡΡΠΈΠ½Π³ 2. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ DOM
ΠΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ Π΄Π»Ρ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ:
Geolocation Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π½Π° Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ
, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ
ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
. ΠΠΈΡΡΠΈΠ½Π³ 4 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ±ΡΠ°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ².
ΠΠΈΡΡΠΈΠ½Π³ 4. ΠΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ
ΠΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠΎΠ² iPhone ΠΈ Π΄Π²ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π΄Π»Ρ Android. Android 1.6 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΈΠ· ΡΠΎΠ³ΠΎ ΡΡΠΎ ΠΌΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ. ΠΠΎ ΡΠ°ΠΊΡΡ Π²ΡΠ΅ ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ Π±ΡΡΡ Π² Π½Π΅ΠΌ, ΠΊΡΠΎΠΌΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Google Gears. ΠΠ½ΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ API (ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ), Π½ΠΎ Π½Π΅ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΠ΅Π±-ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π² ΠΠΈΡΡΠΈΠ½Π³Π΅ 4. Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ Ρ Android 2.1, Π² Π½Π΅ΠΌ Π²ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ iPhone ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΊΡΠΎΠΌΠ΅ Web workers. ΠΠΈΡΡΠΈΠ½Π³ 3 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Safari ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Web workers, ΡΠ°ΠΊ ΡΡΠΎ Π΅ΡΡΡ ΡΠ΅Π·ΠΎΠ½ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π² ΡΠΊΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π½Π° iPhone.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΠ·ΡΡΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈβΠ² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ. ΠΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Foursquare API Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΌΠ΅ΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π‘ΠΎΠ·Π΄Π°ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΎΠ΄Π½Ρ
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠΊΡΡΠΈΡΡΠ΅ΠΌΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ geolocation, Π½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ ΡΡΠΎ Firefox 3.5+ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ geolocation. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΠΎΠΈΡΠΊ Π·Π²ΠΎΠ½ΠΊΠΎΠ² Foursquare Π²Π±Π»ΠΈΠ·ΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ, Π½ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΠ΅ΡΡΠΎΡΠ°Π½Ρ, Π±Π°ΡΡ, ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. ΠΡΠ΄ΡΡΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π²ΡΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌ. ΠΠ½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Foursquareβs API Π½Π°ΠΏΡΡΠΌΡΡ. ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Java servlet ΠΊΠ°ΠΊ ΠΏΡΠΎΠΊΡΠΈ Π΄Π»Ρ ΡΡΠΈΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ². Π ΡΠ΅ΡΠ²Π»Π΅ΡΠ΅ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ Java; Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠΊΡΠΈ Π½Π° PHP, Python, Ruby, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° forth. ΠΠΈΡΡΠΈΠ½Π³ 5 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠΊΡΠΈ ΡΠ΅ΡΠ²Π»Π΅Ρ.
ΠΠΈΡΡΠΈΠ½Π³ 5. ΠΡΠΎΠΊΡΠΈ ΡΠ΅ΡΠ²Π»Π΅Ρ Π΄Π»Ρ Foursquare
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΠΏΡΠΎΠΊΡΠΈΡΠΈΡΠΈΡΡΡΠ΅ΡΡ Π΄Π²Π° Foursquare API. ΠΠ΄ΠΈΠ½ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°, Π΄ΡΡΠ³ΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΌΠ΅ΡΡΠ΅ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ Π² API Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ JSON Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·ΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ JavaScript. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΠΎΠ²Π΅ΡΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Foursquare.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ geolocation
ΠΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΡΠ·ΠΎΠ² Π² ΠΏΠΎΠΈΡΠΊΠ΅. ΠΠΈΡΡΠΈΠ½Π³ 5 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎ Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: geoLat ΠΈ geoLong Π΄Π»Ρ ΡΠΈΡΠΎΡΡ ΠΈ Π΄ΠΎΠ»Π³ΠΎΡΡ. ΠΠΈΡΡΠΈΠ½Π³ 6 Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ Π²ΡΠ·ΠΎΠ² ΡΠ΅ΡΠ²Π»Π΅ΡΠ°.
ΠΠΈΡΡΠΈΠ½Π³ 6. ΠΡΠ·ΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ° Ρ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
Π‘ΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅
ΠΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎ Π’Π¦ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ½Π°ΡΠ°Π»ΠΎ ΡΠΎΠ·Ρ Π΄Π°Π΄ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ SQL Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ. (ΠΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ SQLite. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ SQLite Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ , ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΈ Ρ.ΠΏ. ΡΠΈΠΏΠ°Ρ Π΄Π°Π½Π½ΡΡ .) SQL Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ. ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅. Π€ΡΠ½ΠΊΡΠΈΡ callback ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ SQL. Π€ΡΠ½ΠΊΡΠΈΡ executeSQL ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ SQL, Π·Π°ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΠΎΠ»ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅Ρ, ΡΠΎ ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅Ρ. ΠΠ»Ρ create table ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π°. Π ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠΈ ΡΠΊΡΠΈΠΏΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρβ Π½ΠΎ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. Π²Π°ΠΌ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡ ΡΡΠΎ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ·Π΄Π°Π½Π°, Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π²ΡΡΠ°Π²ΠΊΡ Π΄Π°Π½Π½ΡΡ Π² Π½Π΅Π΅.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ forEach Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ saveVenue Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΡΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π½ΡΡΠ° ΠΈΠ· Foursquare. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ½Π°ΡΠ°Π»ΠΎ Π΄Π΅Π»Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡ Π² ΠΠ ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡ ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΆΠ΅ Π½Π΅ Ρ ΡΠ°Π½ΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ. ΠΠ΄Π΅ΡΡ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π² Π·Π°ΠΏΡΠΎΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΡΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π΅Ρ, ΠΈΠ»ΠΈ Π’Π¦ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ insertVenue ΠΊΠΎΡΠΎΡΠ° Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΠ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ ΠΈΠ·ΡΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ β ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ β ΠΈΠ·ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Web worker Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ.
Π€ΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Web workers
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΠΈΡΡΠΈΠ½Π³Ρ 6, ΠΈ Π²Π½Π΅ΡΠ΅ΠΌ Π² Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ Π² ΠΠΈΡΡΠΈΠ½Π³Π΅ 9, ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π±ΡΠ°ΡΠ·Π΅Ρ Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Web worker. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ β ΠΏΠΎΠ»ΡΡΠΈΠΌ Ρ ΠΈΡ
ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π’Π¦.
Listing 9. ΠΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π’Π¦
ΠΠΎΠ΄ Π²ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΡΠΎ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ Web workers ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ, ΡΠΎ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ worker. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ worker, Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ URL Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ worker Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ β details.js. ΠΠΎΠ³Π΄Π° worker Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ onmessage ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅; ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ Π΅Π³ΠΎ Π·Π°ΠΊΡΡΡΠΈΠ΅. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ worker β Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ postMessage Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΡΠ΅ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ· Foursquare. ΠΠΈΡΡΠΈΠ½Π³ 10 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΠ΄ΠΆΠ΅ΡΠΆΠΈΠΌΠΎΠ΅ details.js, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠΌ workerβΠΎΠΌ.
Listing 10. Worker ΡΠΊΡΠΈΠΏΡ β details.js
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊ ΡΠΎΡΠ³ΠΎΠ²ΡΡ ΡΠ΅Π½ΡΡΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 10 Π’Π¦. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠΎΠ²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ ? ΠΠΎ Web workers Π΄Π΅Π»Π°ΡΡ Π·Π°Π΄Π°ΡΡ Π»Π΅Π³ΠΊΠΎΠΉ ΠΈ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π΄Π΅Π»Π°Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ HTML 5 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ. ΠΡ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎ Π½Π°ΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΌΠΎΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° ΡΠΆΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π΄Π°ΠΆΠ΅ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ . ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΎΠΏΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π² Π²ΡΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΈ ΠΊΠ°ΠΊ geolocation ΠΈ Web workers Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ , ΠΊΡΠ΅Π°ΡΠΈΠ²Π½ΡΡ ΠΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ!
| ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΠ°ΡΡΠΈ | FutureWeb.zip | 9KB | HTTP |
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ
ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
ΠΠ΅Π»Π°Π΅ΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½ΡΠ»Ρ
ΠΡΠ°ΠΊ, Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. Π ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΠΎΡ β Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΉΠ΄ΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°? ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ? Π§ΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΆΠ΅ ΡΠΎ ΡΡΠ°ΡΡΠ° ΡΠΌΠ΅ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡ?
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π½Π°Π±ΡΠΎΡΠ°ΡΡ boilerplate ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ:
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ΅ΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΏΠ΅ΡΠ²Π° Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ, ΡΡΠΎ ΠΌΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ! Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ Ρ ΡΠ΅ΡΠΈΠ» ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ wiki-Π΄Π²ΠΈΠΆΠΎΠΊ. Π£ Π½Π°Ρ Π±ΡΠ΄ΡΡ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ, ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΡΠ΅ Π² Markdown; ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ (ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ) ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΏΡΠ°Π²ΠΊΠΈ. ΠΡΡ ΡΡΠΎ ΠΌΡ ΠΎΡΠΎΡΠΌΠΈΠΌ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ server-side rendering (ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ Π½Π°ΡΠΈΡ Π±ΡΠ΄ΡΡΠΈΡ ΡΠ΅ΡΠ°Π±Π°ΠΉΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°).
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎΠΉΠ΄ΡΠΌΡΡ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ:
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°: git
ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΏΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡ, Π½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π²Π΅ΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π² git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΡΠΎΠ³ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Github. ΠΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ ΡΡΠ°ΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ (Ρ Π½Π΅ΠΌΠ°Π»ΠΎ ΡΠ΅Π±Π΅ΠΉΠ·ΠΈΠ», ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΎΠ³ΠΎ!).
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°: docker-compose
ΠΠ°ΡΠ½ΡΠΌ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈ ΡΠΎΠΌ ΠΈΠ·ΠΎΠ±ΠΈΠ»ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ, Π²Π΅ΡΡΠΌΠ° Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ docker-compose.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠ°ΠΉΠ» docker-compose.yml ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌ Π²ΠΊΡΠ°ΡΡΠ΅, ΡΡΠΎ ΡΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
ΠΠ΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΉ docker/backend/.dockerignore :
ΠΠΎΡΠΊΠ΅Ρ Π² ΡΠ΅Π»ΠΎΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ Π±ΡΠΊΠ΅Π½Π΄Ρ, ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΎ gunicorn Ρ Π½Π°Ρ ΠΎΠ±ΡΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠΊ ΠΏΠΈΡΠΎΠ½ΡΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠΎΠ½ΡΠ΅Π½Π΄. ΠΡΠΎ Π½Π΅Π³ΠΎ Π½Π° Π₯Π°Π±ΡΠ΅ Π΅ΡΡΡ ΡΠ΅Π»Π°Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ, Π½ΠΎ, ΡΡΠ΄Ρ ΠΏΠΎ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎΠΉ Π΄ΠΈΡΠΊΡΡΡΠΈΠΈ Π½Π° StackOverflow ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌ Π² Π΄ΡΡ Π΅ Β«Π Π΅Π±ΡΡ, ΡΠΆΠ΅ 2018, Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΡ Π΅ΡΡ Π½Π΅Ρ?Β» ΡΠ°ΠΌ Π²ΡΡ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ. Π― ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΡΡ Π½Π° ΡΠ°ΠΊΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π΄ΠΎΠΊΠ΅ΡΡΠ°ΠΉΠ»Π°.
ΠΡΠ°ΠΊ, Π½Π°Ρ ΠΊΠ°ΡΠΊΠ°Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π³ΠΎΡΠΎΠ² ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΎΠ»Π½ΡΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ!
ΠΡΠΊΠ΅Π½Π΄: ΠΊΠ°ΡΠΊΠ°Ρ Π½Π° Flask
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Ρ Π±ΡΠΊΠ΅Π½Π΄ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΠΠΠΠ―Π’Π¬!
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄: ΠΊΠ°ΡΠΊΠ°Ρ Π½Π° Express
Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π½Π°ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Node.js Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° (Ρ ΠΎΡΡ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠ·Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ npm init ΡΠ΅ΡΠ΅Π· Docker, Π½Ρ Π΄Π° Π»Π°Π΄Π½ΠΎ).
Π Dockerfile ΠΌΡ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ npm run build ΠΈ npm run start β Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² package.json ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΠΌΠ°Π½Π΄Π° build ΠΏΠΎΠΊΠ° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ, Π½ΠΎ ΠΎΠ½Π° Π½Π°ΠΌ Π΅ΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Express ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² index.js ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
Π’Π΅ΠΏΠ΅ΡΡ docker-compose up frontend ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ Π½Π°Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄! ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π½Π° http://localhost:40002 ΡΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΊΡΠ°ΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ βHello, worldβ.
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄: ΡΠ±ΠΎΡΠΊΠ° Ρ webpack ΠΈ React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ plain text. Π ΡΡΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ App ΠΈ Π½Π°ΡΡΡΠΎΠΈΠΌ ΡΠ±ΠΎΡΠΊΡ.
ΠΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° React ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JSX β Π΄ΠΈΠ°Π»Π΅ΠΊΡ JavaScript, ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Π²ΠΈΠ΄Π°
ΠΠ΄Π½Π°ΠΊΠΎ, JavaScript-Π΄Π²ΠΈΠΆΠΊΠΈ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π΅Π³ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΡΠ°ΠΏ ΡΠ±ΠΎΡΠΊΠΈ. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ JavaScript (Π°Π³Π°-Π°Π³Π°) ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ
Π°Ρ Π² ΡΡΠΎΠ΄Π»ΠΈΠ²ΡΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ JavaScript, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΠΌΠΏΠΎΡΡΡ, ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΡΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
2014 Π³ΠΎΠ΄. apt-cache search java
ΠΡΠ°ΠΊ, ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ.
ΠΠ½ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ±Π΅Π΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΠ΅Π³Π»Π΅ΠΌ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΡΠΎΡΠΊΡ Π²Ρ ΠΎΠ΄Π°:
ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π²ΡΠ΅ΠΉ ΡΡΠΎΠΉ ΠΊΡΠ°ΡΠΎΡΡ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ:
webpack β ΠΌΠΎΠ΄Π½ΡΠΉ ΠΌΠΎΠ»ΠΎΠ΄ΡΠΆΠ½ΡΠΉ ΡΠ±ΠΎΡΡΠΈΠΊ Π΄Π»Ρ JS (Ρ
ΠΎΡΡ Ρ ΡΠΆΠ΅ ΡΡΠΈ ΡΠ°ΡΠ° Π½Π΅ ΡΠΈΡΠ°Π» ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π°ΡΡΡΡ ΠΌΠΎΠ΄Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½);
babel β ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π»Ρ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΏΡΠΈΠΌΠΎΡΠ΅ΠΊ Π²ΡΠΎΠ΄Π΅ JSX, Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊ ΠΏΠΎΠ»ΠΈΡΠΈΠ»Π»ΠΎΠ² Π½Π° Π²ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ IE.
ΠΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° Ρ Π²Π°Ρ Π²ΡΡ Π΅ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π°, Π²Π°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ
Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½ΠΎΠ²ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΈΠΌ webpack:
Π§ΡΠΎΠ±Ρ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π» babel, Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ frontend/.babelrc :
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΠΉ Π½Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ npm run build :
ΠΡΠΊΠ΅Π½Π΄: Π΄Π°Π½Π½ΡΠ΅ Π² MongoDB
ΠΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅ ΠΈ Π²Π΄ΡΡ Π°ΡΡ Π² Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Ρ, Π½Π°Π΄ΠΎ ΡΠΏΠ΅ΡΠ²Π° Π΅Ρ Π²Π΄ΠΎΡ Π½ΡΡΡ Π² Π±ΡΠΊΠ΅Π½Π΄. ΠΠ°ΠΆΠ΅ΡΡΡ, ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π»ΠΈΡΡ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ Π² Markdown ΠΊΠ°ΡΡΠΎΡΠΊΠΈ β ΠΏΠΎΡΠ° ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
Π ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ORM Π΄Π»Ρ MongoDB Π½Π° ΠΏΠΈΡΠΎΠ½Π΅, Ρ ΡΡΠΈΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ORM ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΈ ΠΎΡΡΠ°Π²Π»ΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π½Π° Π²Π°ΡΠ΅ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΠΈ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠΉ DAO:
(ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² Π² Python, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π³Π»ΡΠ½ΡΡΠ΅ ΡΡΠΈ ΡΡΠ°ΡΡΠΈ!)
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ MongoCardDAO ΠΈ Π΄Π°ΡΡ Flask-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ. Π₯ΠΎΡΡ ΡΠ΅ΠΉΡΠ°Ρ Ρ Π½Π°Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ°Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ β ΠΊΠ»ΠΈΠ΅Π½Ρ pymongo β Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ pymongo β MongoCardDAO ), Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΡΠ°Π·Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΡΡ-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π΄Π΅Π»Π°ΡΡΠΈΠΉ dependency injection (ΠΎΠ½ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π½Π°ΠΌ ΡΠ½ΠΎΠ²Π°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ Π²ΠΎΡΠΊΠ΅Ρ ΠΈ tools).
ΠΡΠ΅ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΎΡΡ Π² Flask-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΎΠΌ!
Π£ΠΏΡβ¦ ΠΎΡ , ΡΠΎΡΠ½ΠΎ. ΠΠ°ΠΌ ΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ! ΠΠ°Π²Π΅Π΄ΡΠΌ ΠΏΠ°ΠΏΠΊΡ tools ΠΈ ΡΠ»ΠΎΠΆΠΈΠΌ Π² Π½Π΅Ρ ΡΠΊΡΠΈΠΏΡΠΈΠΊ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠΈΠΉ ΠΎΠ΄Π½Ρ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΊΠ°ΡΡΠΎΡΠΊΡ:
Π£ΡΠΏΠ΅Ρ ! Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠΎ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅.
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄: Redux
ΠΠ°ΡΠ½ΡΠΌ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Redux. Redux β JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠ΄Π΅Ρ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΡΡΡΠΈ Π½Π΅ΡΠ²Π½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π²Π°ΡΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΡΡ , ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π° Π»ΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. Π’Π°ΠΊ, Π΅ΡΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅ Π΄Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΌΡ ΡΠΏΠ΅ΡΠ²Π° Π²ΠΊΠ»ΡΡΠ°Π»ΠΈ Π³ΠΈΡΠΊΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΠΎΡΠΎΠΌ Π΄Π΅Π»Π°Π»ΠΈ Π·Π°ΠΏΡΠΎΡ ΡΠ΅ΡΠ΅Π· AJAX ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π² success-ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠ΅ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½ΡΠΆΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠΎ Π² Redux-ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ΅ Π½Π°ΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ βΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π½Π° Π³ΠΈΡΠΊΡ Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΠ΅ΠΉβ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΠΊ, ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²ΡΠΊΠΈΠ½Π΅Ρ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ, ΠΏΠΎΡΠΎΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡ, Π° Π² Π΅Π³ΠΎ success-ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΅ΡΡ ΠΎΠ΄Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, βΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π½Π° ΠΏΠΎΠ΄Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉβ. Π ΠΎΠ±ΡΠ΅ΠΌ, ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΡΡΠΎ ΡΠ°ΠΌΠΈ ΡΠ²ΠΈΠ΄ΠΈΠΌ.
ΠΠ°ΡΠ½ΡΠΌ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½ΠΎΠ²ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΠ΅ΡΠ²ΠΎΠ΅ β ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Redux, Π²ΡΠΎΡΠΎΠ΅ β ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΊΡΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ React ΠΈ Redux (written by mating experts), ΡΡΠ΅ΡΡΠ΅ β ΠΎΡΠ΅Π½Ρ Π½ΡΠΆΠ½Π°Ρ ΡΡΡΠΊΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π² Π΅Ρ ΠΆΠ΅ README, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΠ΅ΡΠ²ΡΡΡΠΎΠ΅ β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠΊΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Redux DevTools Extension.
ΠΠ°ΡΠ½ΡΠΌ Ρ Π±ΠΎΠΉΠ»Π΅ΡΠΏΠ»Π΅ΠΉΡΠ½ΠΎΠ³ΠΎ Redux-ΠΊΠΎΠ΄Π°: ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π΄ΡΡΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ, ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΠ°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΌΠΎΡΠ°Π»ΡΠ½ΠΎ Π³ΠΎΡΠΎΠ²ΡΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Ρ Redux:
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄: ΡΡΡΠ°Π½ΠΈΡΠ° ΠΊΠ°ΡΡΠΎΡΠΊΠΈ
ΠΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Ρ SSR, Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π±Π΅Π· SSR! ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΠΊΠΎΠ½Π΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π½Π°ΡΠΈΠΌ Π³Π΅Π½ΠΈΠ°Π»ΡΠ½ΡΠΌ API Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ°ΡΡΠΎΡΠΊΠ°ΠΌ ΠΈ ΡΠ²Π΅ΡΡΡΠ°Π΅ΠΌ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅.
ΠΡΠ΅ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠΎΠΌ ΠΈ Π·Π°Π΄ΠΈΠ·Π°ΠΉΠ½ΠΈΡΡ ΡΡΡΡΠΊΡΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠΎΠΌ Π½Π΅ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΡΡΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΎΠΌ:
ΠΠ°Π²Π΅Π΄ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Β«ΠΊΠ°ΡΡΠΎΡΠΊΠ°Β», ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ props ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ cardData (ΠΎΠ½ΠΎ ΠΆΠ΅ β ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π½Π°ΡΠ΅ΠΉ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ Π² mongo):
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°Π²Π΅Π΄ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠΎΠΉ. ΠΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π΅Π½ Π·Π° ΡΠΎ, ΡΡΠΎΠ±Ρ Π΄ΠΎΡΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· API ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΡ Π² Card. Π ΡΠ΅ΡΡΠΈΠ½Π³ Π΄Π°Π½Π½ΡΡ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ React-Redux way.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ»ΠΈΠΊ frontend/src/redux/actions.js ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΠ°ΡΡ ΠΈΠ· API ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ, Π΅ΡΠ»ΠΈ Π΅ΡΡ Π½Π΅:
ΠΡ , Ρ Π½Π°Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π§Π’Π-Π’Π ΠΠΠΠΠΠ’! ΠΡΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ Π² ΡΠ΅Π΄ΡΡΡΠ΅ΡΠ΅:
(ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ²Π΅ΡΡ ΠΌΠΎΠ΄Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ.)
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²ΡΡ Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ½Π΅ΡΠ΅Π½Π° Π² Redux actions, ΡΠ°ΠΌΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° CardPage Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ:
ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ page.type Π² Π½Π°Ρ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ App:
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΡΠ°Π»ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ β Π½Π°Π΄ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ page.type ΠΈ page.cardSlug Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ URL ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², ΠΌΡ ΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΊΠ° ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΠΊΠ°ΠΊ-Π½ΠΈΠ±ΡΠ΄Ρ Π³Π»ΡΠΏΠΎ. ΠΠΎΡ ΠΏΡΡΠΌ ΡΠΎΠ²ΡΠ΅ΠΌ Π³Π»ΡΠΏΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π³ΡΠ»ΡΡΠΊΠΎΠΉ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ!
Π’Π°ΠΊ, ΡΠ΅ΠΊΡΠ½Π΄ΠΎΡΠΊΡβ¦ Π° Π³Π΄Π΅ ΠΆΠ΅ Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅Π½Ρ? ΠΡ , Π΄Π° ΠΌΡ Π²Π΅Π΄Ρ Π·Π°Π±ΡΠ»ΠΈ ΡΠ°ΡΠΏΠ°ΡΡΠΈΡΡ Markdown!
ΠΠΎΡΠΊΠ΅Ρ: RQ
ΠΠ°ΡΡΠΈΠ½Π³ Markdown ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ HTML Π΄Π»Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° β ΡΠΈΠΏΠΈΡΠ½Π°Ρ Β«ΡΡΠΆΡΠ»Π°ΡΒ» Π·Π°Π΄Π°ΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠ°ΡΡ ΠΏΡΡΠΌΠΎ Π½Π° Π±ΡΠΊΠ΅Π½Π΄Π΅ ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ°Π²ΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ β Π²ΠΎΡΠΊΠ΅ΡΠ°Ρ .
ΠΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π·Π°Π΄Π°Ρ; ΠΌΡ Π²ΠΎΠ·ΡΠΌΡΠΌ Redis ΠΈ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠΊΡ RQ (Redis Queue), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°Π΄Π°Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ pickle ΠΈ ΡΠ°ΠΌΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΏΠ°ΡΠ½ΠΈΠ½Π³ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΡΠ΅ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅Π΄ΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ Π²Π°ΠΉΡΠΈΠ½Π³!
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠΉΠ»Π΅ΡΠΏΠ»Π΅ΠΉΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΠΎΡΠΊΠ΅ΡΠ°.
ΠΠ»Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠΊΡ mistune ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
ΠΡ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ Π΄ΠΆΠΎΠ±Ρ, ΠΏΡΠΎΠΊΠΈΠ΄ΡΠ²Π°ΡΡΠΈΠΉ Π²Π°ΠΉΡΠΈΠ½Π³ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ kwargs-Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π²ΠΎ Π²ΡΠ΅ ΡΠ°ΡΠΊΠΈ. (ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΠΠΠ«Π Π²Π°ΠΉΡΠΈΠ½Π³, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π΅Π»ΡΠ·Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΡΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ RQ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π΄Π°ΡΠΈ.) Π§ΡΠΎΠ±Ρ Π²ΡΠ΅ Π½Π°ΡΠΈ ΡΠ°ΡΠΊΠΈ Π½Π΅ ΡΡΠ°Π»ΠΈ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π²Π°ΠΉΡΠΈΠ½Π³Π° β ΡΠΎ Π΅ΡΡΡ ΠΎΡ ΠΠ‘ΠΠ₯ Π½Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², β Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°Π²Π°ΡΡ ΠΈΠ· Π²Π°ΠΉΡΠΈΠ½Π³Π° ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΠΎΠ΅:
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΊ Π½Π°ΡΠ΅ΠΉ ΡΠ°ΡΠΊΠ΅ ΠΈ ΡΠ°Π΄ΡΠ΅ΠΌΡΡ ΠΆΠΈΠ·Π½ΠΈ:
Π Π°Π΄ΡΠ΅ΠΌΡΡ ΠΆΠΈΠ·Π½ΠΈ? Π’ΡΡΡ, Ρ Ρ ΠΎΡΠ΅Π» ΡΠΊΠ°Π·Π°ΡΡ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π²ΠΎΡΠΊΠ΅Ρ:
ΠΠΈΠΈΠΈβ¦ ΠΎΠ½ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ! ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Π΅Π΄Ρ ΠΌΡ Π½Π΅ ΡΡΠ°Π²ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΡΠΊΠΈ!
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ Π½Π°ΡΡ ΡΡΠ»Π·Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΊΠ°ΡΡΠΎΡΠΊΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π°: Π°) Π½Π΅ ΠΏΠ°Π΄Π°Π»Π°, Π΅ΡΠ»ΠΈ ΠΊΠ°ΡΡΠΎΡΠΊΠ° ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½Π° (ΠΊΠ°ΠΊ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅); Π±) ΡΡΠ°Π²ΠΈΠ»Π° ΡΠ°ΡΠΊΡ Π½Π° ΠΏΠ°ΡΡΠΈΠ½Π³ ΠΌΠ°ΡΠΊΠ΄Π°ΡΠ½Π°.
ΠΠ΅ΡΠ΅ΡΠΎΠ±ΡΠ°Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ, ΠΌΡ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π½Π°ΡΠ΅ΠΉ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅:
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄: Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ
ΠΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ SSR, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΡ Π½Π°ΡΡ Π²ΠΎΠ·Π½Ρ Ρ React Ρ ΠΎΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ-ΡΠΎ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΠΉ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°ΡΠ΅ single page application Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ single page. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ Π½Π°ΡΡ ΡΡΠ»Π·Ρ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΎΡΡ Π΄Π²Π΅ (ΠΠ ΠΠΠΠ, Π ΠΠΠ! ΠΠΠΠ, Π― Π’ΠΠΠΠ Π¬ ΠΠΠ ΠΠΠ’Π ΠΠΠΠΠΠΠΠΠ !) ΠΊΠ°ΡΡΠΎΡΠΊΠΈ, ΡΡΡΠ»Π°ΡΡΠΈΠ΅ΡΡ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π°, ΠΈ ΠΏΠΎΡΠΎΠΌ Π·Π°ΠΉΠΌΡΠΌΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Ρ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ ΠΈ ΡΠΎΠ·Π΅ΡΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π½Π°ΡΠ΅ ΡΡΠ΄Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ. Π₯Π²Π°ΡΠΈΡ ΡΡΠΎ ΡΠ΅ΡΠΏΠ΅ΡΡ!
Π‘ΠΏΠ΅ΡΠ²Π° Π½Π°Π²Π΅ΡΠΈΠΌ ΡΠ²ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° ΠΊΠ»ΠΈΠΊΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ HTML ΡΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Ρ Π½Π°Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Ρ Π±ΡΠΊΠ΅Π½Π΄Π°, Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½Π°Ρ Π½Π° React, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ React-ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΎΠΊΡΡ.
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π³Π»ΡΠΏΠ΅Π½ΡΠΊΠΈΠΉ ΡΠ΅Π΄ΡΡΡΠ΅Ρ ΠΏΠΎΠ΄ ΡΡΠΎ Π΄Π΅Π»ΠΎ:
ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΎΠ±ΡΠ°ΡΠΈΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ URL ΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠ°ΠΌΠΈ β Π΄Π°ΠΆΠ΅ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Hello, world-ΠΊΠ°ΡΡΠΎΡΠΊΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ demo-ΠΊΠ°ΡΡΠΎΡΠΊΠΈ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ Π²ΠΏΠ΅ΡΡΠ΄-Π½Π°Π·Π°Π΄ ΡΠΎΠΆΠ΅ ΠΎΡΠ²Π°Π»ΠΈΠ»Π°ΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΡΠ°Π·Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ½ΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈ Ρ history, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΈΠ½ΠΈΡΡ ΡΡΠΎ!
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°Ρ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ URL Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΠΠ°Π·Π°Π΄Β» ΡΠ»ΠΎΠΌΠ°Π΅ΡΡΡ!
Π Π²ΠΎΡ ΠΊΠ°ΠΊ β Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ navigate:
ΠΠΎΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΡΠΎΡΠΈΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄: server-side rendering
ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ (Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄) ΡΠΈΡΠ΅ΡΠΊΠΈ β SEO-Π΄ΡΡΠΆΠ΅Π»ΡΠ±ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π² React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ , Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° React, ΠΈ Π΅ΡΡ ΠΈ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΠΎΡΠΎΠΌ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ½ΠΎΠ²Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌ.
