Je fais une notification en temps réel pour les mises à jour de nouveaux messages en utilisant jquery ajax. Les mises à jour des messages seront demandées lorsque l'utilisateur ouvrira la page dans laquelle le code javascript utilise window.onload. Une fois la requête terminée, une nouvelle demande sera créée. Le problème est que, lorsque l'utilisateur actualise la page ou ouvre une autre page, il va exécuter une nouvelle requête ajax pour les mises à jour des messages. Après quelques rafraîchissements, la page devient lourde et lente en raison de nombreuses requêtes ajax qui ne sont pas encore terminées. Alors, comment fermer la requête ajax précédente pour qu'il n'y ait qu'une requête à la fois?Surcharge Ajax Demande
Merci! Ci-dessous est juste un exemple de code pour vous aider à comprendre ce que j'ai demandé à propos de.
<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>
En 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;
?>