ActiveCable received выполняется сразу в нескольких открытых вкладках. Как выполнять js код только в одной вкладке или новой?

В Rails я использую ActiveCable. Как только поступает запрос в контроллер, тот сразу делает ActionCable.server.broadcast, в то время как JS проверяет

App.cable.subscriptions.create('Channel', {
    received: function(data) {
    $.get(`URL`);
}}

Так вот после запроса эта функция срабатывает для всех открытых вкладок текущего rails-servera, $.get() вызывает для меня модальное окно, но я хочу выводить это модальное окно только в одной вкладке (в новой или последней с переходом на нее). Я пытался проверять вкладку скрыта она или нет вот так

if (!window.hidden){
   $.get(`URL`);
} else { 
  window.open("http://localhost:3000"); 
}

Однако после этого мой subscription стал странно себя вести, то модальное окно не выведется в активной вкладке то вместо одной новой откроется несколько новых вкладок, это связано с тем что мой js выполняется для всего rails приложения. Может кто знает как правильно настроить открытие модального окна в данном случае только для 1 вкладки?


Ответы (0 шт):