2012-07-10 50 views
0

我有一个python脚本,大约8或9个特定的步骤。这些步骤正在记录在一个文件中。对于Web GUI来显示状态更改或错误消息,我在下面的脚本中使用了脚本PeriodicalUpdater插件。 我需要程序同时运行,以便随着文件中的值更改,它将被轮询并显示。jquery ajax异步假不工作

请在下面找到我的jQuery代码。 注意URL“/ primary_call /”大约需要2分半钟才能执行。问题是异步的:false不起作用。浏览器等待2.5分钟,然后进入下一级。 我试过Firefox和Chrome,它给出了相同的结果。

当我调用另一个浏览器选项卡的URL时,它完美地工作,但当我尝试从同一页面调用时,我无法同时运行这两个脚本组件。 我该怎么做才能让浏览器启动在后台运行Python脚本的“/ primary_call /”,同时向前移动到名为PeriodicUpdate的部分。

$(document).ready(function() 
$.ajax({ 
type: 'GET', // Or any other HTTP Verb (Method) 
url: '/primary_call/', 
async: false, 
success: function(r){ 
    return false; 
}, 
error: function(e){ 
} 
}); 

$.PeriodicalUpdater({ 
       url : '/static/12.txt', 
       method: 'post', 
       maxTimeout: 6000, 

      }, 
      function(data){ 
       var myHtml = data + ' <br />'; 
       $('#results').append(myHtml); 
     }); 


    }) 

回答

3

设置async:false意味着你可以将这个过程同步,所以,直到它完成浏览器就会在上面挂 - 它不能移动到你的其他方法。删除该选项将使调用异步(在默认情况下,它应该是这样),在此时浏览器将在单独的线程中初始化每个ajax调用。

总之,删除async:false

+1

http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings看看文档。 _注意同步请求可能会暂时锁定浏览器,并在请求处于活动状态时禁用任何操作。从jQuery 1.8开始,不赞成使用async:false ._ – nbrooks 2012-07-10 02:21:37