Существует много подходов к решению этой проблемы. Они обычно сводятся к вопросу о том, какое состояние вы поддерживаете на стороне клиента (то есть сколько информации содержит страница клиента, которую она может включать в любые запросы к серверу).
Одним из самых чистых решений является то, которое вы часто используете здесь, а также на других крупных сайтах, таких как Twitter. Страница клиента каждые несколько секунд спрашивает сервер, изменились ли соответствующие записи для текущей страницы (поэтому единственное, что вам нужно - это отметка времени последней загрузки страницы). Если это так, вы показываете пользователю какое-то сообщение / сообщение об ошибке, указывающее, что страница устарела, и что они должны перезагрузиться.
SO делает это всякий раз, когда ответ публикуется во время просмотра страницы. Twitter указывает, когда доступны новые твиты (для данного пользователя или для поиска).
Альтернативно, более тяжелый подход часто используется гораздо более тяжелыми приложениями ajax, которые фактически автоматически загружают такие вещи, как новые комментарии или сообщения, когда они становятся доступными. Для этого необходимо знать больше о том, что уже загружено, а что нет, и где разместить его на странице.
Для ресурсов, которые действительно могут быть удалены, я обычно предпочитаю первый вариант, но во многих отношениях это вопрос предпочтения.