@Stockmg

Колокольчик уведомлений на сайт?

На сайте есть раздел "Новости" и ссылка на эти новости в шапке, мне нужно напротив этой ссылки сделать счетчик - уведомление для пользователей, мне не нужно что бы уведомления как то свплывали или показывались в окне, нужно что бы напротив ссылки новости стояла например цифра 1 если добавлена одна новость или 2, 3 и т.д. после того как пользователь посетил страницу с новостями цифра соответственно пропала, что означает что он просмотрел страницу.
Колонка новости написана, существует, в админке есть возможность добавлять новости.

Вопрос, какой алгоритм действий должен быть что бы реализовать данную идею? Или может есть примеры? Вообще такие колокольчики сейчас много где есть, но в интернет информация только о push или всплывающих окнах.
  • Вопрос задан
  • 511 просмотров
Пригласить эксперта
Ответы на вопрос 4
@rPman
Это счетчик непрочитанных новостей
Варианты реализации:
- для каждого пользователя у каждой новости есть отметка boolean (например в базе данных связь М - М, наличие записи - прочитана, отсутствие - нет), количество новостей без таких отметок для пользователя и есть искомое число (можно оптимизировать триггерами в базе данных на создание новостей)
этот вариант подходит, если есть возможность и необходимость мониторить прочтение каждой новости
- для каждого пользователя сохраняется дата последнего его захода на сайт (чтения страницы новостей), соответственно количество новостей с датой выхода больше сохраненной у пользователя - искомое число
этот вариант сильно быстрее работает но дубовый и не учитывает что пользователь мог не прочитать новости
Ответ написан
Комментировать
DanArst
@DanArst
Гриффиндор в моде при любой погоде!
Если я правильно понял вопрос, то вы имеете в виду счетчик непросмотренных постов, наподобие этого в vk, только без возможности ajax подгрузки?
63b9c18ea5f69691266678.jpeg

Лучше вариант реализации - это использовать WebSocket.
Если знания и опыт не позволяют, а желания разбираться в этом нет, то можно (но не стоит) сделать с помощью обычных ajax-запросов на ваш контроллер через определенный промежуток времени, например каждые 20 секунд.
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Как минимум у вас должна быть таблица
UserID2NewsId
плюс какой то скрипт который раз в секунду опрашивает какой то апи
ну или что то типа longpool socket.io или подобного что бы вывешивать циферку

Такой функционал есть в одном из моих проектов посмотрите
https://github.com/vkorotenko/ChatApplication
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Веб-разработка
software engineer
Ну то есть? Берешь и рисуешь колокольчик, если для юзера есть непрочитанные новости.
Алгоритм чего? Отрисовки надо или как gif колокольчика вставить?

Или (вруг) ты не знаешь про cookies?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы