我应该使用以下哪种javascripts长轮询代码?
我想使用长轮询。 我在谷歌上找到了很多有用的资源,因为有很多,我开始搞不清哪一个更好。 下面是来自两个地方的三段代码片段 我的问题是,哪种代码是长轮询的最佳实践? 我应该用哪一个我应该使用以下哪种javascripts长轮询代码?,javascript,ajax,long-polling,Javascript,Ajax,Long Polling,我想使用长轮询。 我在谷歌上找到了很多有用的资源,因为有很多,我开始搞不清哪一个更好。 下面是来自两个地方的三段代码片段 我的问题是,哪种代码是长轮询的最佳实践? 我应该用哪一个 提前感谢。我认为第一种方法更好: 若服务器配置为超时超过30000的长轮询,那个么在第一个轮询中,您将通过超时中断请求,并发送一个新请求,将不会调用success()函数 (虽然complete()将是,但error()中也可以像这样处理错误。) error: function(x, t, m) { if(
提前感谢。我认为第一种方法更好:
error: function(x, t, m) {
if(t==="timeout") {
alert("got timeout");
} else {
alert(t);
}
}
)。
而在第二个请求中,一个新请求将在30000之后发送,因此在客户端会有不可预测的行为(两个请求可以收到相同的答案,因此数据可能会被复制)总而言之:在第一种方法中,情况是可控的,而在第二种方法中,情况并不总是可控的。感谢您的意见和解释
function getContent(timestamp)
{
var queryString = {'timestamp' : timestamp};
$.ajax(
{
type: 'GET',
url: 'http://127.0.0.1/php-long-polling/server/server.php',
data: queryString,
success: function(data){
// put result data into "obj"
var obj = jQuery.parseJSON(data);
// put the data_from_file into #response
$('#response').html(obj.data_from_file);
// call the function again, this time with the timestamp we just got from server.php
getContent(obj.timestamp);
}
}
);
}
error: function(x, t, m) {
if(t==="timeout") {
alert("got timeout");
} else {
alert(t);
}
}