Поскольку Ajax предлагает вам только модель запроса клиентского сервера (обычно называемую push, а не push), единственный способ получения данных с сервера - через запросы. Тем не менее, обычная техника, позволяющая обойти это, заключается в том, что сервер отвечает только при наличии новых данных. Таким образом, клиент делает запрос, сервер удерживает этот запрос, пока что-то не произойдет, а затем отвечает. Это избавляет от необходимости частого опроса, даже если данные не изменились, поскольку вам нужно только, чтобы клиент отправил новый запрос после получения ответа.
Поскольку вы используете PHP, один простой метод может состоять в том, чтобы код PHP вызывал команду sleep в течение 200 мс между проверками изменений данных, а затем возвращал данные клиенту, когда они действительно изменяются.
РЕДАКТИРОВАТЬ: Я также рекомендовал бы иметь тайм-аут по запросу. Поэтому, если ничего не произойдет, скажем, в течение 2 секунд, сообщение «без изменений» отправляется обратно. Таким образом, клиент узнает, что сервер еще работает, и обрабатывает свой запрос.