JS властивість Event.open


Загальний опис

Подія open використовується для відстеження моменту, коли з'єднання відкривається через веб-сокети або інші протоколи комунікації, такі як XMLHttpRequest або EventSource. Це означає, що клієнт успішно встановив з'єднання з сервером і готовий до обміну даними. Як правило, подія open використовується для виконання початкових дій після встановлення з'єднання, наприклад, для надсилання первинного запиту або повідомлення серверу про готовність до роботи.

Веб-сокети (WebSocket) — це технологія, що дозволяє відкривати двонаправлене з'єднання між клієнтом і сервером. Після створення об'єкта WebSocket і виклику його методу connect, подія open спрацьовує, коли з'єднання встановлено.

Приклад використання події open у веб-сокетах:

const socket = new WebSocket('ws://example.com');

socket.addEventListener('open', function(event) {
  console.log('З\'єднання відкрите.');
  socket.send('Привіт, сервер!');
});

У цьому прикладі створюється з'єднання з сервером за допомогою WebSocket. Подія open спрацьовує після успішного встановлення з'єднання, і як відповідь клієнт відправляє серверу повідомлення.

Подія open також застосовується в інших технологіях. Наприклад, для XMLHttpRequest вона вказує на готовність до надсилання запиту після відкриття з'єднання з сервером, хоча в цьому випадку її використовують рідше, оскільки в основному обробляється інша подія — load.

Важливо пам'ятати, що подія open є асинхронною, і вона не спрацьовує миттєво після виклику метода підключення. Тому код, який передбачає комунікацію з сервером, повинен виконуватися в межах обробника цієї події, щоб уникнути помилок, пов'язаних з відсутністю з'єднання.

Крім веб-сокетів, подія open використовується у функції EventSource, яка дозволяє створювати постійне з'єднання між браузером і сервером для отримання даних у режимі реального часу (наприклад, оновлення новин або повідомлень).

автор: Bond

Порада

Подія open може бути використана для ініціалізації безперервного обміну даними, коли потрібно підтримувати зв'язок протягом усього часу роботи програми. Це може бути корисно для чат-додатків або систем реального часу, де зв'язок повинен бути стійким.

автор: Bond
Порада

Не намагайтеся відправляти дані на сервер до того, як подія open спрацює. Хоча підключення може бути запущене, воно не готове до роботи до моменту активації цієї події, тому намагайтеся всю логіку обміну даними поміщати всередину її обробника.

автор: Bond
Порада

При роботі з веб-сокетами важливо не лише відстежувати подію open, але й передбачити обробку подій close та error, щоб ефективно реагувати на втрату з'єднання або інші проблеми під час його встановлення.

автор: Bond

Синтаксис

webSocket.addEventListener('open', function(event) {
  // ваш код тут
});

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
66 57 11.1 53 16
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
66 66 57 11.3
Підтримка: серверні переглядачі
Переглядач Node.js Deno
15.0.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі після відкриття з'єднання виконується відправка первинного запиту серверу, який містить інформацію про ініціалізацію роботи клієнта. Це може бути корисно для додатків, де після підключення клієнт передає серверу інформацію про стан чи налаштування.

const socket = new WebSocket('ws://example.com');

socket.addEventListener('open', function(event) {
  console.log('З\'єднання відкрите. Підготовка до відправки даних.');
  // Надсилаємо дані серверу після відкриття з'єднання
  socket.send(JSON.stringify({ action: 'initialize', data: 'початкові дані' }));
});
автор: Bond

Цей приклад демонструє роботу події open через WebSocket. Користувач може натиснути кнопку "Встановити з'єднання", щоб відкрити з'єднання з сервером WebSocket. Після відкриття з'єднання (подія open), користувач може відправляти повідомлення через форму, які будуть відображені як відповіді сервера на сторінці.

автор: Bond

Цей приклад демонструє, як використовувати подію open для встановлення постійного з'єднання з сервером для отримання оновлень в реальному часі. Після відкриття з'єднання клієнт слухає події message і відображає нові дані, коли вони надходять від сервера.

const socket = new WebSocket('ws://example.com/realtime-updates');

socket.addEventListener('open', function(event) {
  console.log('З\'єднання встановлено, починаємо слухати оновлення.');
  
  // Починаємо отримувати повідомлення в режимі реального часу
  socket.addEventListener('message', function(messageEvent) {
    const data = JSON.parse(messageEvent.data);
    console.log('Отримано нові дані:', data);
  });
});
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід