Полагаю, вы хотите средство оповещения пользователя A, когда пользователь B «подружился» с ним / с ней, не требуя обновления страницы?
Для этого требуется «AJAX».AJAX расшифровывается как асинхронный Javascript и XML, но в настоящее время это перегруженный термин, поскольку фактическая структура данных обмена часто использует JSON вместо XML.JSON - это нотация объектов JavaScript.В любом случае, идея заключается в том, что ваша веб-страница - без обновления - может совершать периодические звонки на ваш сервер, чтобы получить новую или обновленную информацию для обновления дисплея.С помощью PHP и jQuery вы сначала захотите настроить вызов AJAX на своей странице следующим образом:
$(function() { // on document ready
function updateAlerts() {
$.ajax({
url : "/check.php",
type : "POST",
data : {
method : 'checkAlerts'
},
success : function(data, textStatus, XMLHttpRequest) {
var response = $.parseJSON(data);
// Update the DOM to show the new alerts!
if (response.friendRequests > 0) {
// update the number in the DOM and make sure it is visible...
$('#unreadFriendRequestsNum').show().text(response.friendRequests);
}
else {
// Hide the number, since there are no pending friend requests
$('#unreadFriendRequestsNum').hide();
}
// Do something similar for unreadMessages, if required...
}
});
setTimeout('updateAlerts()', 15000); // Every 15 seconds.
}
});
Это будет каждые 15 секунд отправлять запрос на ваш сервер по ссылке / проверке.PHP на том же домене, что и источник веб-страницы.PHP должен запросить вашу базу данных и вернуть количество непрочитанных запросов на добавление в друзья.Возможно, что-то вроде этого:
<?php
function isValid(session) {
// given the user's session object, ensure it is valid
// and that there's no funny business
// TO BE IMPLEMENTED
}
function sanitize(input) {
// return CLEAN input
// TO BE IMPLEMENTED
}
// Be sure to check that your user's session is valid before proceeding,
// we don't want people checking other people's friend requests!
if (!isValid(session)) { exit; }
$method = sanitize($_POST['method']);
switch ($method) {
case 'checkAlerts' :
// Check DB for number of unread friend requests and or unread messages
// TO BE IMPLEMENTED
$response = ['friendRequests' => $num_friend_requests,
'messages' => $num_unread_messages ];
return json_encode( $response );
exit;
case 'someOtherMethodIfRequired' :
// ...
exit;
}
?>