我正在努力用jQuery制作正确的代码。
简而言之,我想检查是否每1000毫秒通过XHR请求完成某些事情。 可以在任何桌面计算机上完美运行,但在最新的raspberry pi上正常工作,并且安装了 chrome 。
客户端只有一次获得HTTP / 1.0 200 OK,事情是Rasberry pi可能会不时地错过它而且它真的很烦人。
var my_interval = null;
var k = function()
{
$.ajax({
url: '/my-ext-request',
async: false,
type: 'GET',
success: function(data)
{
console.log('Success!!');
clearInterval(my_interval);
},
error: function(jHXR, exception, m)
{
console.error('Error!');
}
});
}
$(function() {
my_interval = setInterval(k, 1000);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
有人能提出更好的方法吗? 谢谢!
答案 0 :(得分:0)
不应该使用setInterval,而是使用setTimeout。
@Taplar:
不要这样做。 async:false不仅导致请求为非 异步,这与范式相反,但也冻结了 浏览器请求的持续时间,这是可怕的用户 经验。请改用setTimeout。编辑:另外async:false 在jquery 3.X中删除了