Ваш код в порядке. Это не «загрузка более 1 миллиарда запросов XHR», это запуск (и завершение - как мы видим) запроса каждые X секунд, и нет ничего плохого в этом.
Однако это не лучший способ реализовать систему push-уведомлений. Это будут веб-узлы , что позволяет вашему клиенту «слушать» сообщения с вашего сервера. Существуют рамки для этого, самого популярного (и того, который я рекомендую), который является socket.io .
Вашим третьим и самым современным / современным решением будет внедрение системы уведомлений на основе службы, но я уверен, что это слишком сложно и не подходит для вас, поскольку вы даже не можете понять свою проблему достаточно, чтобы ее описать.