Как запретить выполнение скрипта на нескольких вкладках сайта?
Всем привет. Имеется форум, на каждой странице вставлен скрипт, выполняющий запрос к серверу (получает информацию о новых личных сообщениях) каждые 10 секунд. Представим, что пользователь открыл 3 вкладки форума, как можно запретить выполнять скрипт на двух вкладках, а на третьей разрешить? Я думал про событие "видна ли вкладка или нет" на JS, но оно не подходит, если открыта единственная вкладка форума и при этом юзер сидит на другой вкладке. То есть когда у юзера открыт форум, но сидит на другой вкладке, скрипт должен выполняться, потому что если пришло новое сообщение, то скрипт отправляет оповещение через HTML5 API. Какие есть мысли?
Общайся между вкладками с помощью localStorage.
Повесь eventListener на изменения storage, тогда ты сможешь регулировать с какой вкладки загружать сообщение.
По beforeunload, можно переместить загрузку сообщений с одной вкладки на другую.
display: block, long-polling при всей простоте - создает большу нагрузку, чем WS. Также он занимает лишний child - а это коннект к базе и прочее. Соответственно WS с пулом соединений к БД будет лучше. Иначе такой сайт можно "положить" - просто открыв тучу вкладок в одном браузере.