Как организовать выполнение скрипта (AJAX) только когда есть обновление в базе данных?
Есть AJAX запрос, который выводит новости из таблицы в базе данных, если отправлять запрос каждые 10 секунд то это будет просто трата трафика, как узнать, есть ли обновление в базе данных?
Никак, AJAX не предназначен для этого. Потому что AJAX ориентирован на запрос - вы отправляете запрос на сервер, сервер отвечает, и соединение закрывается. Используйте Websockets, Websockets устанавливают постоянное соединение с сервером, по которому вы обмениваетесь несколькими сообщениями в обоих направлениях.
А что такого ужасного чтобы раз в 10 секунд спрашивать у сервера есть ли обновление? Если база толстая, сделайте прослойку, отдавая в запрос некий хэш базы. AJAX опрашивает это состояние. Если хэш предыдущего запроса не совпадает с текущим на сервере, то делаете запрос на обновление. После обновления сохраняете новый хэш на стороне клиента. Ну и далее по-кругу. На сервере при обновлении базы вычисляете хэш и сохраняете в каком-то месте, откуда его AJAX будет получать. Таким образом вы избежите необходимость каждый раз делать запрос к базе.