diana-staputov, я к тому, что клиенты с медленным интернетом / отключённым JS / старыми браузерами рискуют не увидеть ничего вообще, если блоку задаётся active через JS . Обычно эти подходы комбинируют.
Татьяна Комарова, при загрузке страницы смотреть в куки браузера. Если там есть кука (например) alreadyVisit: true --- тогда ничего не делать, если нет - показывать модалку и ставить эту куку без указания срока действия. Тогда она удалится при закрытии браузера.
А вам надо ещё и при закрытии страницы. Вот тут писали, как отловить это событие (см. комментарии к ответу) . Ну, и чистить куки.
darksladen, целесообразно использовать инструмент, который вы знаете.
Сокеты могут быть на каком угодно сайте, но они не имеют отношения к самой архитектуре SPA. Да, и на php тоже делают SPA , лично видел (причём на Wordpress). Так что... да на любом языке можно, а целесообразно на наиболее знакомом. Я бы на Node написал просто потому, что лучше её знаю
teledrom, вы не правы, это не флуд. Вам дали ответ, смотрите логи сервера (ибо точнее ответить нельзя). Где искать логи можно оч быстро нагуглить. Обычно в /var/log/nginx (error.log и acess.log) , но зависит от ваших настроек сервера.
А где у вас в коде есть строчка './ActiveUser' ?