0
我正在使用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/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;
?>