我正在开发一个长轮询聊天室。但是当长轮询出现时,如果我在Chrome中刷新页面或尝试发送另一个异步请求,一切都会超时(即我无法再次加载我的域名直到我关闭/重新打开浏览器)。
我的客户端代码如下:
$(document).ready(function() {
setTimeout(
function () {
longPollForMessages();
},
500
);
});
function longPollForMessages()
{
$.ajax({
url: url,
dataType: 'json',
success: function(data) {
$('#chat_messages').append('<div>'+data.messages+'</div>');
longPollForMessages();
}
});
}
我的服务器端:
while(true) {
$messages = $db->getMessages();
if (!$messages || sizeof($messages)==0) {
sleep(1);
} else {
echo '{"message":'.json_encode($messages).'}';
die();
}
}
有什么想法吗?假设没有语法错误。
echo
后面加上break;
。 - The Scrum Meistermessage
返回,但在 JavaScript 中访问时要使用messages
吗? - alex