jquery ajaxを使用して新しいメッセージの更新をリアルタイムで通知しています。 javascriptコードがwindow.onloadを使用しているページをユーザーが開くと、メッセージの更新が要求されます。要求が完了すると、別の新しい要求が作成されます。 問題は、ユーザーがページを更新するか、別のページを開くときに、メッセージ更新のための新しいajax要求を実行することです。 いくつかのリフレッシュページの後に、ページがまだ完了していない前に、多くの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_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;
?>