问题描述
|
更新:
我正在尝试让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>
解决方法
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/
,看看jquery插件Smartupdater
http://www.eslinstructor.net/smartupdater3/
它具有您需要的所有功能。
,迟到总比不到好!根据jQuery docs,get()ajax函数以静默方式失败。您将必须处理.ajaxError()事件。 http://api.jquery.com/ajaxError/