更新:
我正在努力让jquery智能投票为我工作。如果进程在前2秒内就绪,它可以正常工作,但如果没有,它不会按预期重试。我还希望在一定数量后重试时间。
https://github.com/hmert/jquery-smart-poll
<script type="text/javascript" charset="utf-8">
$("#load_availables").toggle()
$.poll(2000,function(retry){
$.getScript('update_availables.js?job_id=<%= @bed.job_id %>&space_id=<%= @space.id %>', function(response, status){
if (status == 'success')
$("#load_availables").toggle() //works fine if ready
else
retry() //does not retry at all
})
})
</script>
答案 0 :(得分:2)
var retryCount = 0;
$.poll(10000, function(retry){
retryCount++;
$.get('something', function(response, status){
if (status == 'success')
// Do something
else
{
if(retryCount < 11) retry();
else return;
}
})
})
我没有机会测试这个 - 但是,从理论上讲,这应该可以胜任。
顺便说一句,作为旁注 - 如果你想提高JavaScript的效率,你正在做的事情,使用彗星服务器并使用慢速轮询。看看http://www.ape-project.org/
答案 1 :(得分:1)
答案 2 :(得分:1)
迟到总比没有好!根据jQuery文档,get()ajax函数无声地失败。您将不得不处理.ajaxError()事件。 http://api.jquery.com/ajaxError/