Я хочу реализовать AJAX для автоматического обновления содержимого, когда для пользователя поступает новое уведомление.
Пример того, чего я пытаюсь достичь:
user A отправил запрос на добавление в друзья user B, поэтому user B получает уведомление, но уведомление отображается только после обновления страницы. Я хочу автоматически обновлять уведомление всякий раз, когда база данных обновляется/вставляется новое значение.
АЯКС:
$('#ajax').click(function(){
$(document).ready(function(){
$.ajax({
type: 'POST',
url: '../main/count-fnd.php',
success: function(data){
$('#output').html(data);
}
});
});
});
Есть несколько техник, которые вы могли бы использовать. Первый не синхронный. Итак, что вы можете сделать, так это делать запрос AJAX каждые X секунд, чтобы убедиться, что у пользователя есть запрос на добавление в друзья. К сожалению, это решение не самое лучшее, так как может потреблять много ресурсов на стороне сервера. Представьте, в вашей сети 10000 участников, и все они подключены одновременно. Это означает, что все 10000 участников отправят запрос на сервер для проверки запросов на добавление в друзья. Другим, более легким решением является использование веб-сокетов, когда все элементы обновляются одновременно.
Для получения дополнительной информации вы можете увидеть следующие ссылки: socketo.me & socket.io
@ Сэм, это явно не дублирующий вопрос. Я не пытаюсь сделать приложение для чата.
@Chris_00, это именно так, замените «уведомление» на «сообщение в чате».
@ Сэм, лол, опять явно не то же самое, и это не решило мою проблему...
@Chris_00 хорошо, как хочешь






Чтобы сделать это с помощью AJAX (без использования других технологий), наиболее часто используемым, а скорее типичным в этих случаях, является использование какого-либо таймера для обновления и проверки наличия каких-либо новых уведомлений каждые "x" секунд, которые вы указываете.
setInterval(() => {
$.ajax({
type: 'POST',
url: '../main/count-fnd.php',
success: function(data){
$('#output').html(data);
}
});
}, 5000); // refresh 5s
Надеюсь, это не типичный случай, зачем отправлять запрос на ваш сервер каждые 5 секунд, который в худшем случае ничего не возвращает? Я бы предпочел сервер push/pubsub/websockets
Вы плохо поняли мой ответ и поспешили проголосовать за него отрицательно. ЯСНО, ПРАВИЛЬНО использовать веб-сокеты. Но если вы хотите сделать это только с помощью AJAX, не имея других технологий или сокетов, это типичный случай.
На самом деле вопрос гласит: «Как передать информацию AJAX другому пользователю от пользователя с помощью нажатия кнопки в php?» не "Как лучше всего..."
@JoseFG, как лучше всего это сделать?
к вашему сведению, я не записал ваш ответ
@Chris_00, как хорошо они связывают вас с помощью какой-то технологии, которая слушает и может запускать событие, когда нужные данные изменяются. Возможно, лучшим примером, как вам сказали, является использование сокетов.
Возможный дубликат Реализация Php чата