Что касается событий, обычно для PM есть поле в базе данных с именем «read», которое имеет значение false, если они не открыли его, и значение true, если они открыли. При загрузке страницы проверьте, есть ли какие-либо сообщения для пользователя, которые являются «непрочитанными», и, если это так, загрузите их и используйте JQuery для создания всплывающего окна с кратким описанием их. Вы также можете периодически проверять небольшой AJAX-скрипт.
Что касается новых сообщений, то традиционный способ, которым я это видел (но ни в коем случае не лучший способ), - это сохранять метку времени, когда пользователь последний раз посещал сайт. При загрузке страницы получите каждую новую запись / тему, созданную после этой отметки времени, затем сериализуйте эти данные и сохраните их в базе данных или в файле cookie (если эти сериализованные данные уже существуют, удалите их сериализацию, объедините их и повторно выполните повторную сериализацию) , Если пользователь посещает тему, получите все данные из соответствующей сериализованной записи (например, в той же теме или номера публикации) и удалите ее из сериализованных данных. Затем снова при загрузке страницы или с помощью сценария AJAX, периодически проверяйте, есть ли у них «непрочитанные» сообщения по теме, которая принадлежит им (IE, созданный после их последнего значения временной метки), и используйте немного JQuery, чтобы уведомить их.