Я делаю уведомления в режиме реального времени о новых сообщениях обновлений, используя jquery ajax.Обновления сообщения будут запрошены, когда пользователь откроет страницу, код JavaScript которой использует window.onload.После завершения запроса он создаст еще один новый запрос.Проблема в том, что когда пользователь обновляет страницу или открывает другую страницу, он выполняет новый запрос ajax для обновления сообщения.После нескольких обновлений страницы страница становится тяжелой и медленной из-за большого количества запросов ajax, прежде чем они еще не завершены.
Итак, как закрыть предыдущий запрос ajax, чтобы одновременно был только запрос?
Спасибо!
Ниже приведен только пример кода, который поможет вам понять, о чем я спросил.
<script type="text/javascript" src="assets/js/jquery.js"></script>
<script type="text/javascript">
function request_updates() {
var curr = $('#current_num').value();
$.ajax({
'url': 'ajax/ajax_message_update.php?curr='+curr,
'type': 'get',
'success': function(data) {
var message = 'You have '+data+' new messages!';
$('#notification-box').html(message);
request_updates();
}
});
}
window.onload = request_updates;
</script>
В ajax / ajax_message_update.php
<?php
// ajax/ajax_message_update.php
$current_num = $_GET['curr'];
$new_num = $current_num;
while($current_num == $new_num) {
sleep(5);
$sql = "SELECT * FROM messages WHERE id=".user_id();
$result = mysql_query($sql);
$new_num = mysql_num_rows($result);
}
echo $new_num;
?>