通过setInterval的jQuery .ajax XHR请求在Raspberry PI Chromium上无法正常工作

时间:2017-05-26 15:41:51

标签: javascript jquery ajax chromium raspberry-pi3

我正在努力用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;
&#13;
&#13;

有人能提出更好的方法吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

不应该使用setInterval,而是使用setTimeout。

@Taplar:

  不要这样做。 async:false不仅导致请求为非   异步,这与范式相反,但也冻结了   浏览器请求的持续时间,这是可怕的用户   经验。请改用setTimeout。编辑:另外async:false   在jquery 3.X中删除了