我正在尝试使用jQuery创建一个聊天应用程序,而不必使用setTimeout来缩小ajax请求的数量:
function checkChat(){
new jQuery.ajax({
'url' : './chat/check.php',
'cache' : false,
'success' : function(messages) {
if( messages.length ) {
$("#empty_chat").append(messages);
//write to chat wall
}
checkChat();
}
});
}
在一个工作得很好但在页面上有其他ajax事件(如导航)的简单页面上,请求排队,只要消息为空,就不会出现任何内容。
光标也处于等待状态。
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
不是真的,除非您想查看Comet,否则您仍然需要轮询消息并且setTimeout很好。
你在checkChat()递归调用时设置的递归应该设置为setTimeout,否则你将堆栈溢出lol
setTimeout(checkChat,2000);
并且需要删除新运算符并执行
jQuery.ajax或$ .ajax
答案 1 :(得分:-2)
排队的AJAX请求的影响很可能是由于对相同域的活动请求的限制,在大多数浏览器上默认为2。