Нужно каждый запрос сопровождать уникальным идентификатором вкладки. Для каждой вкладки генерить этот ид так, чтобы в пределах браузера он не повторился. И слать его вместе с каждым запросом чтобы сервер знал из какой именно вкладки он пришел. Кукис, понятное дело, не подходят, так как глобальны для всех вкладок, localStorage тоже, остается sessionStorage. Хочу знать какие с ним могут быть проблемы. И как это вообще правильно делается, чтобы не изобретать.
Я правильно понимаю, что пользователь в этой вкладке будет ходить по ссылкам и id должен при этом сохраниться?
Если так, то как вариант проверить GET параметр (например "id"), если его нет, то сгенерировать случайный. Добавить id (текущий или сгенерированный) ко всем ссылкам на странице.
В том то и проблема. даже spa может быть открыто в нескольких вкладках, я как раз думаю как их синхронизовать. Там есть данные которые должны быть актуальны для каждого "экземпляра", и работа в одной вкладке может сделать их неактуальными в других. Нужно заставлять другие вкладки обновлять у себя изменённое. А для этого они должны знать что они другие. Но у меня там не spa, а как бы много spa по разным адресам, на каждом адресе может быть любой набор контролов, вьюх и тд, использующих любые данные, они при смене данных самообновляются. Но сейчас только в текущей вкладке, а в предыдущих всё устаревает. Чтобы воспользоваться предыдущей нужно жать ф5. Это колхоз и ни одному пользователю не объяснишь.
И еще непонятно как с гет-запросами что-то отправлять не портя урл. Можно в куку при работе с вкладкой что-то прописывать. Как тогда отслеживать потерю/получение фокуса вкладки?