【发布时间】:2016-08-14 10:23:07
【问题描述】:
我正在做一个项目,客户端使用 javascript,服务器端使用 servlet。我正在尝试实现一种实时更新客户信息的方法。即当客户端更新 Web 应用程序中的某些信息时,其他客户端也会看到更新。我发现长轮询是一个很好的技术。这是我试图开始工作的代码。
function poll() {
setTimeout(function() {
$.ajax({
type: "GET",
url: "server",
contentType: "application/json",
data: {
type: "update",
card: "string"
},
success: function(data) {
alert(data);
},
error: function(data) {
alert('eroor');
},
dataType: "json",
complete: poll });
}, 5000);
}
我正在尝试每 5 秒向服务器发送一次请求,并获得包含新更新的响应。但是在我在网上看到的所有骨架代码中,data: 都没有设置。如果不设置它,服务器如何知道它收到的请求类型,因为还有其他类型的请求。但是当我设置data: 时,客户端不会发送任何请求。但是没有设置data: 请求被发送到服务器。设置 data: 有错吗?没有它,我如何让 servlet 知道请求的类型?
我知道here 中提到的长轮询不是我想要做的。但是谁能解释我应该做什么以及我做错了什么。
【问题讨论】:
标签: javascript ajax servlets long-polling polling