Подписка Π½Π° события Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π³ΠΈΠ±ΠΊΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, измСнСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ систСмныС события. Однако Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… (ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ…) программистов часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π°: Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ этапС происходит подписка β€” ΠΏΡ€ΠΈ стартС систСмы, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈΠ»ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚? Π­Ρ‚Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ памяти.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ выполняСтся подписка Π½Π° события Π² Ρ€Π°Π·Π½Ρ‹Ρ… сцСнариях: для Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ„ΠΎΡ€ΠΌ, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ статичСской ΠΈ динамичСской подпиской, Π° Ρ‚Π°ΠΊΠΆΠ΅ нюансам Ρ€Π°Π±ΠΎΡ‚Ρ‹ с событиями Π² управляСмых ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с событиями.

1. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ подписка Π½Π° событиС Π² 1Π‘

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, разбСрёмся с Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ. Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 событиС β€” это сигнал ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ дСйствиС: Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Ρ‡Π°Π»ΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚.Π΄. Подписка Π½Π° событиС β€” это привязка ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ сигналу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ выполнялся ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ.

БущСствуСт Π΄Π²Π° основных Ρ‚ΠΈΠΏΠ° подписки:

  • πŸ”Ή БтатичСская подписка β€” задаётся Π½Π° этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· свойства Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ модуля ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°). Π’Π°ΠΊΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ "привязан" ΠΊ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ постоянно, ΠΏΠΎΠΊΠ° сущСствуСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.
  • πŸ”Ή ДинамичСская подписка β€” создаётся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅(). Π•Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π² runtime, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ подписки тСсно связан с контСкстом выполнСния. НапримСр, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ссли Ρ„ΠΎΡ€ΠΌΠ° Π΅Ρ‰Ρ‘ Π½Π΅ создана, Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ систСмного события (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΡ€ΠΈΠΠ°Ρ‡Π°Π»Π΅Π Π°Π±ΠΎΡ‚Ρ‹Π‘ΠΈΡΡ‚Π΅ΠΌΡ‹) срабатываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π·Π° сСанс.

πŸ“Š Как часто Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ подписку Π½Π° события Π² 1Π‘?
ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ, это ΠΌΠΎΠΉ основной инструмСнт
Иногда, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½Π° Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ
Рядом Π½Π΅ стоял, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ статичСской
Π§Ρ‚ΠΎ это?

2. БтатичСская подписка: ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° активируСтся

БтатичСская подписка настраиваСтся Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°. Рассмотрим ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ сцСнарии Π΅Ρ‘ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ:

2.1. Бобытия Ρ„ΠΎΡ€ΠΌΡ‹

Для управляСмых Ρ„ΠΎΡ€ΠΌ статичСскиС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΡ€ΠΈΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠΈΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅, ΠŸΡ€ΠΈΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ) ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ автоматичСски ΠΏΡ€ΠΈ:

  • πŸ“Œ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠΈ экзСмпляра Ρ„ΠΎΡ€ΠΌΡ‹ (ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ€ΠΎΡ€ΠΌΡƒ()).
  • πŸ“Œ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΠ€ΠΎΡ€ΠΌΡƒ()).

Π’Π°ΠΆΠ½ΠΎ: ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠŸΡ€ΠΈΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠΈΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅ срабатываСт Π΄ΠΎ отобраТСния Ρ„ΠΎΡ€ΠΌΡ‹, Π° ΠŸΡ€ΠΈΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ β€” послС. Π­Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

2.2. Бобытия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (справочники, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹)

Для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура) статичСскиС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ, ΠŸΡ€ΠΈΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠΈΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅) ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ:

  • πŸ“Œ ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚()).
  • πŸ“Œ ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ· Π±Π°Π·Ρ‹ (ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚()).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Ссли Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг прописан ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ записи Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½.

πŸ’‘

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, подписан Π»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° событиС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π­Ρ‚ΠΎΡ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΠΎΠ΄ΠΏΠΈΡΠΊΠΈΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΡ.Найти() с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ события. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅.

2.3. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ события (ΠŸΡ€ΠΈΠΠ°Ρ‡Π°Π»Π΅Π Π°Π±ΠΎΡ‚Ρ‹Π‘ΠΈΡΡ‚Π΅ΠΌΡ‹, ΠŸΡ€ΠΈΠ—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈΠ Π°Π±ΠΎΡ‚Ρ‹Π‘ΠΈΡΡ‚Π΅ΠΌΡ‹)

Π­Ρ‚ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ:

  • πŸ”„ ΠŸΡ€ΠΈΠΠ°Ρ‡Π°Π»Π΅Π Π°Π±ΠΎΡ‚Ρ‹Π‘ΠΈΡΡ‚Π΅ΠΌΡ‹ β€” ΠΏΡ€ΠΈ стартС клиСнтского прилоТСния (Ρ‚ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚, толстый ΠΊΠ»ΠΈΠ΅Π½Ρ‚).
  • πŸ”š ΠŸΡ€ΠΈΠ—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈΠ Π°Π±ΠΎΡ‚Ρ‹Π‘ΠΈΡΡ‚Π΅ΠΌΡ‹ β€” ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ сСанса.

Они Π½Π΅ зависят ΠΎΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ всСй систСмы.

πŸ’‘

БтатичСская подписка всСгда активируСтся ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Ρ‘ содСрТит. Для Ρ„ΠΎΡ€ΠΌ β€” ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ, для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² β€” ΠΏΡ€ΠΈ создании/Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅.

3. ДинамичСская подписка: ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈ врСмя выполнСния

ДинамичСская подписка создаётся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅(). Π•Ρ‘ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ β€” Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΎΡ‚ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Рассмотрим, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ происходит подписка Π² этом случаС.

3.1. Подписка Π½Π° события Ρ„ΠΎΡ€ΠΌΡ‹

Для динамичСской подписки Π½Π° событиС Ρ„ΠΎΡ€ΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

Π€ΠΎΡ€ΠΌΠ°.Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Π€ΠΎΡ€ΠΌΡ‹.Кнопка1.ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅("НаТатиС", "ΠœΠΎΠΉΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΠ°ΠΆΠ°Ρ‚ΠΈΡ");

Подписка выполняСтся Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ послС Π²Ρ‹Π·ΠΎΠ²Π° этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Однако Π΅ΡΡ‚ΡŒ Π½ΡŽΠ°Π½ΡΡ‹:

  • ⚑ Если элСмСнт Ρ„ΠΎΡ€ΠΌΡ‹ Π΅Ρ‰Ρ‘ Π½Π΅ создан (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°), подписка Π½Π΅ сработаСт. НуТно Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ события ΠŸΡ€ΠΈΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠΈΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅ ΠΈΠ»ΠΈ ΠŸΡ€ΠΈΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ.
  • ⚑ Π”ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ подписку ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹.

3.2. Подписка Π½Π° события ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (справочников, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²) динамичСская подписка Ρ‚Π°ΠΊΠΆΠ΅ выполняСтся сразу ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. НапримСр:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅("ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ", "ΠœΠΎΠΉΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ");

Но здСсь Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ:

  • πŸ”„ Подписка дСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Если ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, подписку Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ.
  • πŸ—‘οΈ ΠŸΡ€ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, послС записи) подписка автоматичСски снимаСтся, Ссли Π½Π΅ Π±Ρ‹Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π° явно.

3.3. Подписка Π½Π° систСмныС события

НСкоторыС систСмныС события (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈΠ”Π°Π½Π½Ρ‹Ρ… для рСгистров) Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ подписку. Она выполняСтся сразу послС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наличия ΠΏΡ€Π°Π² ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ контСкста. НапримСр:

РСгистр.ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅("ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈΠ”Π°Π½Π½Ρ‹Ρ…", "ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉΠ Π΅Π³ΠΈΡΡ‚Ρ€Π°");
Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° событиС Π΄Π²Π°ΠΆΠ΄Ρ‹?

Если Π΄Π²Π°ΠΆΠ΄Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅() с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ β€” 1Π‘ автоматичСски ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΡƒΡŽ подписку. Однако Ссли ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Π΅, ΠΎΠ±Π° Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΏΡ€ΠΈ срабатывании события.

4. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ подписки Π² управляСмых ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ подписки Π½Π° события сущСствСнно отличаСтся Π² управляСмых ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ различия.

4.1. УправляСмыС Ρ„ΠΎΡ€ΠΌΡ‹

Π’ управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ…:

  • πŸ–₯️ БтатичСскиС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ автоматичСски ΠΏΡ€ΠΈ создании Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° сСрвСрС (Π΄ΠΎ события ΠŸΡ€ΠΈΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠΈΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅).
  • πŸ–±οΈ ДинамичСская подписка Π½Π° события элСмСнтов Ρ„ΠΎΡ€ΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ½ΠΎΠΏΠΎΠΊ) Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ послС создания Ρ„ΠΎΡ€ΠΌΡ‹, Π½ΠΎ Π΄ΠΎ Π΅Ρ‘ открытия. Π˜Π½Π°Ρ‡Π΅ элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½.
  • πŸ”„ Бобытия Ρ„ΠΎΡ€ΠΌΡ‹ дСлятся Π½Π° сСрвСрныС ΠΈ клиСнтскиС. Подписка Π½Π° сСрвСрныС события (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΡ€ΠΈΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠΈΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅) выполняСтся Π½Π° сСрвСрС, Π° Π½Π° клиСнтскиС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΡ€ΠΈΠΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ) β€” Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

4.2. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹

Π’ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…:

  • πŸ“ БтатичСскиС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ управляСмым).
  • πŸ”§ ДинамичСская подписка ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² любом мСстС модуля Ρ„ΠΎΡ€ΠΌΡ‹, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ элСмСнты (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ части) ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΅Ρ‰Ρ‘ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹.
  • πŸ’» ВсС события ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ (Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСрвСрный Π²Ρ‹Π·ΠΎΠ²).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: Ссли Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° событиС элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Ρ‰Ρ‘ Π½Π΅ создан (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠŸΡ€ΠΈΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π΄ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΠ€ΠΎΡ€ΠΌΡƒΠœΠΎΠ΄Π°Π»ΡŒΠ½ΠΎ()), Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка. Π’ управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ… такая ошибка маловСроятна благодаря Π±ΠΎΠ»Π΅Π΅ строгой ΠΌΠΎΠ΄Π΅Π»ΠΈ исполнСния.

Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ° создана (для динамичСской подписки)|ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ элСмСнт Ρ„ΠΎΡ€ΠΌΡ‹ сущСствуСт|Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ клиСнтскими ΠΈ сСрвСрными событиями|ΠžΡ‚ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚ событий ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ (Ссли Π½ΡƒΠΆΠ½ΠΎ)

-->

5. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ

НСпониманиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° подписки часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам. Рассмотрим самыС распространённыС ΠΈΠ· Π½ΠΈΡ… ΠΈ способы ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

5.1. Подписка Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ событиС

Если ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, 1Π‘ Π½Π΅ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции, Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ сработаСт. НапримСр:

// Ошибка: Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π΅Ρ‚ события "ΠŸΡ€ΠΈΠΠ°Π²Π΅Π΄Π΅Π½ΠΈΠΈ"

Π€ΠΎΡ€ΠΌΠ°.Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Π€ΠΎΡ€ΠΌΡ‹.Кнопка1.ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅("ΠŸΡ€ΠΈΠΠ°Π²Π΅Π΄Π΅Π½ΠΈΠΈ", "ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΠ°Π²Π΅Π΄Π΅Π½ΠΈΡ");

πŸ” Как ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ: всСгда провСряйтС Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ события Π² синтакс-ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

5.2. Π£Ρ‚Π΅Ρ‡ΠΊΠΈ памяти ΠΈΠ·-Π·Π° Π½Π΅ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… подписок

ДинамичСскиС подписки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ (ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠžΡ‚ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠžΡ‚Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΡ()), ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ памяти, особСнно Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°ΡŽΡ‚ΡΡ часто. НапримСр:

// Подписка Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°, Π½ΠΎ Π½Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π°

ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅("ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ", "ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ1");

// ... ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ уничтоТаСтся, Π½ΠΎ подписка остаётся Π² памяти

πŸ” Как ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ: всСгда ΠΎΡ‚ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΡ‚ событий, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ слабыС ссылки (Π³Π΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ).

5.3. Подписка Π² Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΌ контСкстС

НСкоторыС события Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ контСкста. НапримСр, нСльзя ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° событиС ΠŸΡ€ΠΈΠ—Π°ΠΏΠΈΡΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΅Ρ‰Ρ‘ Π½Π΅ создан:

// Ошибка: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ создан

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅("ΠŸΡ€ΠΈΠ—Π°ΠΏΠΈΡΠΈ", "ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ—Π°ΠΏΠΈΡΠΈ");

πŸ” Как ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ: ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π·Π²Π°Π½ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚()).

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ динамичСской подпискС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ подпискС Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ событиС.

6. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: отслСТиваниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² справочникС

Рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния Π² справочникС НомСнклатура ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΆΡƒΡ€Π½Π°Π». Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ подписку Π½Π° событиС ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ.

Π¨Π°Π³ 1. Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹(ΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΠžΡ‚ΠΊΠ°Π·) Экспорт

Если ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π­Ρ‚ΠΎΠ“Ρ€ΡƒΠΏΠΏΠ°() Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π–ΡƒΡ€Π½Π°Π»Π˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ(ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Бсылка, ΠžΠ±ΡŠΠ΅ΠΊΡ‚.НаимСнованиС, "ИзмСнСниС Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹");

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Π¨Π°Π³ 2. ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌΡΡ Π½Π° событиС ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹(ΠžΠ±ΡŠΠ΅ΠΊΡ‚)

ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅("ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ", "ΠžΠ±Ρ‰ΠΈΠΉΠœΠΎΠ΄ΡƒΠ»ΡŒ.ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹");

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Π¨Π°Π³ 3. Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ подписку ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ справочника:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠŸΡ€ΠΈΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠΈΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅(ΠžΡ‚ΠΊΠ°Π·, Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Π°ΡΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°)

ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹(Π­Ρ‚ΠΎΡ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚);

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Π¨Π°Π³ 4. НС Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ ΠΎΡ‚ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠŸΡ€ΠΈΠ—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ(ΠžΡ‚ΠΊΠ°Π·)

Π­Ρ‚ΠΎΡ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠžΡ‚ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠžΡ‚Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΡ("ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ", "ΠžΠ±Ρ‰ΠΈΠΉΠœΠΎΠ΄ΡƒΠ»ΡŒ.ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹");

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ подписка выполняСтся ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° справочника (Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠŸΡ€ΠΈΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠΈΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅ Ρ„ΠΎΡ€ΠΌΡ‹), Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ срабатываСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅Π΄ записью элСмСнта.

πŸ’‘

ДинамичСская подписка Π½Π° события ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ послС ΠΈΡ… создания, Π½ΠΎ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Π½Ρ‹.

7. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ статичСской ΠΈ динамичСской подписки

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ‚ΠΈΠΏ подписки, рассмотрим ΠΈΡ… ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ характСристики:

ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ БтатичСская подписка ДинамичСская подписка
ВрСмя Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠŸΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ρ„ΠΎΡ€ΠΌΠ°, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈ Ρ‚.Π΄.) Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅()
Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Ѐиксированная, задаётся Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ МоТно Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π² runtime
ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π’Ρ‹ΡˆΠ΅ (Π½Π΅Ρ‚ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° подписку/отписку) НиТС (трСбуСтся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ подписками)
ΠžΠ±Π»Π°ΡΡ‚ΡŒ примСнСния Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΡ€ΠΈΠ—Π°ΠΏΠΈΡΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°) БлоТная Π»ΠΎΠ³ΠΈΠΊΠ°, зависимая ΠΎΡ‚ условий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, подписка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ)
Π£Ρ‚Π΅Ρ‡ΠΊΠΈ памяти НСт риска Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹, Ссли Π½Π΅ ΠΎΡ‚ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ

πŸ”Ή Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ подписку:

  • πŸ“Œ Для стандартных ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ всСгда (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ записью).
  • πŸ“Œ Когда Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ простая ΠΈ Π½Π΅ зависит ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… условий.

πŸ”Ή Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ подписку:

  • 🎯 Для Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, отслСТиваниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹).
  • 🎯 Когда Π½ΡƒΠΆΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ подписками (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для администриторов).

8. ΠΡŽΠ°Π½ΡΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с событиями Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… 1Π‘

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ подписки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅:

8.1. Π’ΠΎΠ½ΠΊΠΈΠΉ ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚

Π’ этих Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…:

  • 🌐 Подписка Π½Π° клиСнтскиС события Ρ„ΠΎΡ€ΠΌΡ‹ выполняСтся Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.
  • πŸ–₯️ Подписка Π½Π° сСрвСрныС события (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΡ€ΠΈΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠΈΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅) выполняСтся Π½Π° сСрвСрС.
  • ⚑ ДинамичСская подписка Π½Π° события ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²) Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

8.2. Волстый ΠΊΠ»ΠΈΠ΅Π½Ρ‚

Π’ толстом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅:

  • πŸ’» ВсС события ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ локально, Π±Π΅Π· раздСлСния Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚/сСрвСр.
  • πŸ”§ ДинамичСская подписка Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Ρ‚ сСтСвых Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ.
  • ⚠️ Однако Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ подписок, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ.

8.3. Π‘Π΅Ρ€Π²Π΅Ρ€ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅

На сСрвСрС:

  • πŸ“¦ Подписка Π½Π° события выполняСтся Π² контСкстС сСрвСрного Π²Ρ‹Π·ΠΎΠ²Π°.
  • πŸ”„ ДинамичСскиС подписки Π½Π° события ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²) Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса.
  • 🚫 НСльзя ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° клиСнтскиС события Ρ„ΠΎΡ€ΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΡ€ΠΈΠΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ) β€” это Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ.
πŸ’‘

Π’ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ частой динамичСской подписки Π½Π° события ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² β€” ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с сСрвСром, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

FAQ: ЧастыС вопросы ΠΎ подпискС Π½Π° события Π² 1Π‘

МоТно Π»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ?

Π”Π°, это ΠΈ Π΅ΡΡ‚ΡŒ основная идСя подписки. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° событиС ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° сразу послС Π΅Π³ΠΎ создания β€” ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ сработаСт ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ записи. Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ подписка Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π΄ΠΎ наступлСния события.

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π΄Π²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° подписаны Π½Π° ΠΎΠ΄Π½ΠΎ событиС?

Оба ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Π½Ρ‹ Π² порядкС ΠΈΡ… подписки. Для статичСских ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² порядок опрСдСляСтся ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ (свСрху Π²Π½ΠΈΠ· Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°). Для динамичСских β€” порядком Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅().

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ подписаны Π½Π° событиС?

Для динамичСских подписок ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ΄ΠΏΠΈΡΠΊΠΈΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр:

Для КаТдого Подписка Из Π­Ρ‚ΠΎΡ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΠΎΠ΄ΠΏΠΈΡΠΊΠΈΠΠ°Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΡ Π¦ΠΈΠΊΠ»

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Подписка.Π˜ΠΌΡΠ‘ΠΎΠ±Ρ‹Ρ‚ΠΈΡ + " - " + Подписка.Π˜ΠΌΡΠœΠ΅Ρ‚ΠΎΠ΄Π°);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Для статичСских ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ (Π² свойствах ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°).

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π΅ срабатываСт, хотя подписка Π΅ΡΡ‚ΡŒ?

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:

  1. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ подписан Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ событиС.
  2. Подписка Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΌ контСкстС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ для сСрвСрного события).
  3. Ошибка Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ "ΠΌΠΎΠ»Ρ‡Π°" Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.
  4. ΠžΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ подписан ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ ΠΈΠ»ΠΈ пСрСсоздан.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ эти ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°.

НуТно Π»ΠΈ ΠΎΡ‚ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ статичСских ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²?

НСт, статичСскиС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ автоматичСски ΠΏΡ€ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ρ„ΠΎΡ€ΠΌΡ‹, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Ρ‚.Π΄.). ΠžΡ‚ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ динамичСских подписок, Ссли ΠΎΠ½ΠΈ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹.

πŸ’‘

Если ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ подписку с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΏΡ€Π°Π² Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3.20+ появились измСнСния Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ подписки Π½Π° события для управляСмых Ρ„ΠΎΡ€ΠΌ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. НСкоторыС события (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ) ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ асинхронно. УточняйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.