gpt4 book ai didi

jquery - 在 Tomcat 服务器上使用 JQuery 进行长轮询的问题

转载 作者:行者123 更新时间:2023-11-28 23:08:21 24 4
gpt4 key购买 nike

我根据这个例子创建了一个CometServlet http://tomcat.apache.org/tomcat-7.0-doc/aio.html .然后我尝试使用 JQuery 从中获取数据。代码如下:

$(function() {

$.longPoll = function(url, success, error) {
$.ajax({
url : url,
success: function(data, status) {
$.longPoll(url, success, error);
if (success) {
success(data, status);
}
},
error: function(data, status) {
$.longPoll(url, success, error);
if (error) {
error(data, status);
}
}
});

};

$.longPoll("./comet", "", function(data, status) {
alert("success:" + data);
}, function(data, status) {
alert("error:" + data);
});
});

问题是成功函数没有触发(即使我可以在 FireBug 控制台中看到数据来了)。我认为这是因为服务器没有关闭响应编写器,但这是长轮询的目标:)

有没有人知道如何解决这个问题?

最佳答案

您需要覆盖 xhr onreadystatechange 以便使用 jQuery .ajax() 检查 readyState === 3。示例:

var xhr = $.ajax({});
xhr._onreadystatechange = xhr.onreadystatechange; // save original handler

xhr.onreadystatechange = function() {
xhr._onreadystatechange(); // execute original handler
if (xhr.readyState === 3) alert('Interactive');
};

关于jquery - 在 Tomcat 服务器上使用 JQuery 进行长轮询的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3609513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com